降低图像分辨率,问题

时间:2013-05-15 19:59:32

标签: php image resolution

我有一个网站,用户可以上传图像,我有这个功能,以降低图像分辨率和预先形成大量的支票等,工作正常,除了这个小小的错误我似乎无法弄清楚

$ fixed_width是我想要声明为允许的最大宽度,但允许它更低,但由于某种原因,这个if语句总是触发,并且图像重新调整大小,留下一个黑盒子。

$ width_orig =图片宽度

$ fixed_width =最大允许宽度,如果更高,则调整为

$ image_p = truecolor

$ image = img的当前位置

if ($width_orig > $fixed_width) {
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $fixed_width, $fixed_height, $width_orig, $height_orig); // reduce in width / height
} else {
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width_orig, $height_orig, $width_orig, $height_orig); // leave as is
}

那么为什么它永远不会过去,无论发生什么事情都会调整大小?

2 个答案:

答案 0 :(得分:1)

代码中的else块没有任何意义。如果您不更改图像,为什么要复制重新采样?

将剩下的代码发布给我们,看看你获得原始宽度的方式。

答案 1 :(得分:0)

$image_p具有固定的宽度和高度。因此,当您复制较少的东西时,它会有空白(黑色)背景来填充其余部分。请尝试使用$image代替(else {$image_p = $image}