0

我使用我创建的这个函数来调整大小等图片

<?php function
> resizer($ruta_img_ini,$ruta_img_save,$name_img,$name_end,$w,$h,$quality,$redimensaionar)
> { list($w_orig, $h_orig) =
> getimagesize("".$ruta_img_ini."".$name_img."");
> 
> if ($redimensaionar=="si") {
> 
> $scale_ratio = $w_orig / $h_orig; if (($w / $h) > $scale_ratio) { $w =
> $h * $scale_ratio; } else { $h = $w / $scale_ratio; } } $img = "";
> 
> $exp_ext=explode(".",$name_img);
> 
> $ext = strtolower($exp_ext[1]);
> 
> $target="".$ruta_img_ini."".$name_img."";
> 
> if ($ext == "gif"){  $img = imagecreatefromgif($target); } else
> if($ext =="png"){  $img = imagecreatefrompng($target);
> 
> 
> imagealphablending($img, false); imagesavealpha($img,true);
> $transparent = imagecolorallocatealpha($img, 255,255,255, 127);
> imagefilledrectangle($img, 0, 0, $w, $h, $transparent); 
> imagefilledrectangle($img, 2, 2, $w-4, $h-4, $transparent);
> 
> 
> } else {  $img = imagecreatefromjpeg($target); } $tci =
> imagecreatetruecolor($w, $h); // imagecopyresampled(dst_img, src_img,
> dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
> imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig);
> imagejpeg($tci, "".$ruta_img_save."".$name_end.".".$ext."", $quality);
> } ?>

问题:PNG 透明度和用于透明度的通道 alpha。上传图片,一切都很完美,但是上传后,图片很黑,我不知道发生了什么。不尊重带有 alpha 通道的 png 的透明度

4

0 回答 0