【发布时间】:2015-07-26 16:51:32
【问题描述】:
使用此代码,上传的图片将缩小尺寸以适应设置的最大尺寸,同时保留初始宽高比。效果很好。
现在我的目标是让它同时裁剪图像,因此它将纵横比更改为 4:3(水平/垂直)。无论哪种方式,最大尺寸都在 800 像素以内。
我尝试了可以在网上找到的各种代码/想法,但它们似乎扭曲了图像,只是裁剪或根本不起作用。方面裁剪如何包含在我已有的代码中?
$max_width = 800;
$max_height = 800;
$image_size_info = getimagesize($image_temp);
$image_width = $image_size_info[0];
$image_height = $image_size_info[1];
$image_res = imagecreatefromjpeg($image_temp);
$image_scale = min($max_width/$image_width, $max_height/$image_height);
$new_width = ceil($image_scale * $image_width);
$new_height = ceil($image_scale * $image_height);
$canvas = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($canvas, $image_res, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
imagejpeg($canvas, 'images/image.jpg', 85);
imagedestroy($image_res);
PS:拜托,问题是关于这个代码
【问题讨论】:
-
你可以试试cloudinary cloudinary.com api,你可以发照片,而且尺度非常好 | aspect 和许多其他好工具
-
谢谢,但不用了。我将坚持这种极其简单和本地化的方式。我现在离目标越来越近了
-
是的,我明白了,当我遇到同样的问题时我太懒了@mowgli
标签: php crop image-resizing aspect-ratio