调整大小时的图像尺寸计算(php+imagemagick)
$size1 = 170;
$size2 = 128;
if($width > $height){
exec("convert ".$startfile." -resize x".$size2." -quality 100 ".$resultfile);
} else {
exec("convert ".$startfile." -resize ".$size1." -quality 100 ".$resultfile);
}
exec("convert ".$resultfile." -gravity Center -crop ".$size1."x".$size2."+0+0 ".$resultfile);
需要帮助将图像大小调整为 170x128 像素。 上面的功能可以正常工作,但有一个问题。如您所见,如果图像宽度大于高度,脚本首先将图像高度设置为 128 px。当宽度和高度之间存在微小差异时,就会出现问题。
例如,如果图像尺寸为 387x310 像素,脚本将使用语句 if($width > $height) 并使图像高度为 128px。问题是,同时图像宽度将调整为 160 px。但调整大小后我需要 170 像素宽度。
我需要知道将图像大小调整为 128 像素高度后图像宽度是多少。我需要这样的东西:
if($width > $height && $width_after_resizing > 127) {
} else {
}
有什么方法可以在裁剪图像之前计算图像尺寸吗?谢谢。
$size1 = 170;
$size2 = 128;
if($width > $height){
exec("convert ".$startfile." -resize x".$size2." -quality 100 ".$resultfile);
} else {
exec("convert ".$startfile." -resize ".$size1." -quality 100 ".$resultfile);
}
exec("convert ".$resultfile." -gravity Center -crop ".$size1."x".$size2."+0+0 ".$resultfile);
Need help to resize images 170x128 px.
The function above works OK but there is one problem. As you can see, if image width is greater than height, the script first makes image 128 px height. The problem appears when there is a small difference between width and height.
For example, if image dimensions are 387x310 px, the script will use statement if($width > $height) and will make image 128px height. The problem is that at the same time image width will be resized to 160 px. But I need 170 pix width after resizing.
I need to know what will be image width after resizing it to 128 px height. I need something like this:
if($width > $height && $width_after_resizing > 127) {
} else {
}
Is there any way how to calculate image dimensions before cropping it? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
检查 $width 与 $height 假设目标将是正方形。
如果你改变怎么办
:
Checking $width against $height assumes the target will be square.
What if you change:
to
如果您启用了 gd,则可以使用 getimagesize http://php.net/manual/en/ function.getimagesize.php
if you have gd enabled you can use getimagesize http://php.net/manual/en/function.getimagesize.php
您想要调整纵横比以获得指定的尺寸。
添加一个“!”到 -resize 参数。
有关 imagemagick fo 的更多直接信息,请访问 IM 论坛
http://www.imagemagick.org/discourse-server/viewforum.php ?f=1
You want to turn of aspect ratio to get exactly the size specified.
Add a '!' to the -resize argument.
For more direct information about imagemagick fo to the IM forums
http://www.imagemagick.org/discourse-server/viewforum.php?f=1