在PHP中管理长/重函数

时间:2016-03-29 17:44:47

标签: php image-processing

我用这个:

# $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;一次只能使用一个人。

所以我的问题是,问题的原因是什么,我应该如何处理?

0 个答案:

没有答案