我正在使用一个函数来调整图片大小。
大多数图像的大小调整得非常好。但是有人,我不知道为什么只有黑色。同样的图片总是给出黑色的结果。可能是那种给这个的Jpeg..但是如何改变它呢?
谢谢 !
function create_image($file) {
if(is_file($file)) {
$size = getimagesize($file);
// y =hauteur en pixel
$y = 800;
$x = $size[0]/$size[1]*$y;
//$y = 75; # Taille en pixel de l'image redimensionnée
if ($size) {
if ($size['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($file);
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$file );
}
elseif ($size['mime']=='image/png' ) {
$img_big = imagecreatefrompng($file);
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$file );
}
elseif ($size['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($file);
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$file );
}
// move_uploaded_file($img_mini,$dir."test");
}
return true;
} else {
return false;
}
}
编辑:谢谢!
优化不错...
但结果与图像相同: http : //www.ericae.fr/test_images/Ripper.jpg 调整大小给:http ://www.ericae.fr/test_images/resized.jpg 全黑:(
与其他图像的结果是好的!我已经测试了大约 25 张图片,只有 2 张出现了问题……为什么????