2013-05-15 242 views
0

我有一个网站,用户可以上传图像,我有这个功能来减少图像分辨率和瓶坯很多的检查等,工作正常,除了这1个小错误,我不能似乎弄清楚降低图像分辨率,问题

$ fixed_width是我想要声明为最大允许的宽度,但允许较低,但由于某种原因,此if语句总是触发,并且图像被重新调整大小而留下黑色框。

$ width_orig =图像宽度

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

$ image_p =真彩

$图像=在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

很难说,因为你没有提到你的输入值是什么。做一个'var_dump()'来确定它们是你自己认为的。另外,请确保您使用的是数字类型而不是字符串。 – Brad

回答

0

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

1

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

将剩余的代码发布到我们看到您获得原始宽度的方式。

+0

就这么你知道,要求澄清的简要贡献通常最好作为评论,而不是答案。 – halfer

+0

我在这里是新的...添加评论的链接只是在这个答案中向我展示,而不是在原来的帖子... –

+0

刚刚进行了一点研究,发现你必须至少有50个评论的评论在其他成员的答案,什么是不是我的情况... –