안녕하세요 저는 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(): supplied argument is not a valid Image resource [2] imagecolortransparent(): supplied argument is not a valid Image resource
모든 아이디어는이 문제를 해결하기 위해?
감사합니다.
내 말은'$ ext'는 jpg, gif, png가 아니므로 코드가 이미지 자원 *을 전혀 만들지 않는다는 것입니다. –
당신의 오류는'imagecolortransparent()'는 오류를 반환했지만, 이것은 코드에 포함되어 있지 않습니다 - 오류는 다른 곳에서 발생하지 않았습니까? – Death