Autor | Zpráva | ||
---|---|---|---|
Fury Profil * |
#1 · Zasláno: 13. 3. 2015, 16:42:55
Zdravím,
používám tento skript na zmenšení obrázku: function image_resize($file_in, $file_out, $width, $height) { $imagesize = getimagesize($file_in); if ((!$width && !$height) || !$imagesize[0] || !$imagesize[1]) { return false; } if ($imagesize[0] == $width && $imagesize[1] == $height) { return copy($file_in, $file_out); } switch ($imagesize[2]) { case 1: $img = imagecreatefromgif($file_in); break; case 2: $img = imagecreatefromjpeg($file_in); break; case 3: $img = imagecreatefrompng($file_in); break; default: return false; } if (!$img) { return false; } $img2 = imagecreatetruecolor($width, $height); imagecopyresampled($img2, $img, 0, 0, 0, 0, $width, $height, $imagesize[0], $imagesize[1]); if ($imagesize[2] == 2) { return imagejpeg($img2, $file_out, 100); } elseif ($imagesize[2] == 1 && function_exists("imagegif")) { imagetruecolortopalette($img2, false, 256); return imagegif($img2, $file_out); } else { return imagepng($img2, $file_out); } } Mám však problém pokud uploduji obrázek PNG, upraví se mi pozadí na černé. Dá se nějak udělat, aby byl obrázek průhledný, případně aby měl alespoň bílé pozadí? Díky moc za pomoc |
||
mimochodec Profil |
#2 · Zasláno: 13. 3. 2015, 16:56:13
Na http://php.net/function.imagecopyresampled hledej "transparency".
Spíš bych ale doporučil použít http://phpthumb.sourceforge.net. Jak ten web vypadá odbytě, ta knihovna je nejschopnější z těch, co jsem zkusil. Hodně toho umí a třeba zmenšeniny jsou mnohem kvalitnější než u konkurence, vč. té funkce, kterou tady používáš ty. |
||
Časová prodleva: 9 let
|
0