我用这个:
# $file = '/path/existing_file.jpg';
# $info = getimagesize($file);
# $target = '/path/newfile.jpg';
function imgCreator($file, $info, $target, $size) {
list($width, $height) = $info;
$w = $size;
if ($size > 300) {
if ($size > 800) {
$h = ($size/16)*9;
} else {
$h = ($size/16)*10;
}
} else {
$h = $size;
}
$r = $width/$height;
if ($w/$h > $r) {
$nWidth = $h*$r;
$nHeight = $h;
} else {
$nHeight = $w/$r;
$nWidth = $w;
}
if ($info['mime'] == 'image/png') {
$src = imagecreatefrompng($file);
$dst = imagecreatetruecolor($nWidth, $nHeight);
imagealphablending($dst, false);
imagesavealpha($dst,true);
$transparent = imagecolorallocatealpha($dst, 255, 255, 255, 127);
imagefilledrectangle($dst, 0, 0, $nWidth, $nHeight, $transparent);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $nWidth, $nHeight, $width, $height);
imagepng($dst, $target);
} else {
$src = imagecreatefromjpeg($file);
$dst = imagecreatetruecolor($nWidth, $nHeight);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $nWidth, $nHeight, $width, $height);
imagejpeg($dst, $target);
}
imagedestroy($dst);
}
根据所需尺寸创建指定分辨率和宽高比的图像。
它适用于制作缩略图等但是给出了更大的尺寸,比如说2000px
会导致问题。基本上,包含此函数的整个脚本在到达标注时就会停止工作,绝对没有echo
或整个脚本的任何输出,即使它在执行之前发生,但是在执行该函数之前的其他操作。通常在这种情况下,我会制作几个不同大小的图像,而$size
似乎是唯一的问题。
我认为在后台完成这些任务是完美的,但我是一个相当初学者而且我不确定,如果我现在想要学习如何做到这一点,特别是如果它& #39;一次只能使用一个人。
所以我的问题是,问题的原因是什么,我应该如何处理?