2012-05-23 35 views
0

嗨的工作我已经maked与工作这个功能支持JPG确实不错,但不是PNG功能为“正方形缩放”的图像不与PNG

这里是我的代码:

function vignette_carre($src, $dest, $largeur, $src_x, $src_y){ 

    $ext = explode(".", $src); 
    $ext = strtolower(end($ext)); 

     if ($ext == 'jpg' or $ext == 'jpeg') {$im_src=imagecreatefromjpeg($src);} 
    elseif ($ext == 'gif') { $im_src=imagecreatefromgif($src);} 
    elseif ($ext == 'png') {$im_src=imagecreatefrompng($src);} 

    if ($im_src=="") return; 
    if($src_x >= $src_y){ 
     $dim=$src_y; $verticale="1"; 
    } 
    elseif($src_x <= $src_y){ 
     $dim=$src_x; $horizontale="1"; 
    } 
    else{ 
     $dim=$src_x; 
    } 
    if($verticale == "1"){ 
     $point_x_ref=($src_x/2)-($dim/2); 
     $point_y_ref="0"; 
    } 
    if($horizontale == "1"){ 
     $point_x_ref="0"; 
     $point_y_ref=($src_y/2)-($dim/2); 
    } 
    $im_dest=imagecreatetruecolor($largeur, $largeur); 
    $im_dest= imagecolorallocate($im_dest, 255, 255, 255); 
    imagecopyresampled($im_dest, $im_src, 0, 0, $point_x_ref, $point_y_ref, $largeur, $largeur, $dim, $dim); 
    imagedestroy($im_src); 
      if ($ext == 'jpg' or $ext == 'jpeg') { 
    imagejpeg($im_dest, $dest); 
     imagedestroy($im_dest); 
     } 
     elseif ($ext == 'gif') { 
    imagegif($im_dest, $dest); 
     imagedestroy($im_dest); 
      } 
     elseif ($ext == 'png') { 

       imagepng($im_dest, $dest); 
     imagedestroy($im_dest); 
      } 
} 

而且我得到这样的错误在我的错误控制台:

[2] imagecolorallocate():提供的参数是不是有效的图像资源 [2]了imagecolortransparent():提供的参数是不是有效的图像资源

任何想法来解决这个问题?

谢谢!

回答

0

你给imagecolorallocate新创建$ im_dest为PARAM和 的INT$ im_dest再次回归?这是错误的。

+0

我该如何做这项工作? – user1405431

+0

任何想法使我的功能工作? – user1405431