我需要一些帮助在 PHP (GD) 中裁剪图像

Posted

技术标签:

【中文标题】我需要一些帮助在 PHP (GD) 中裁剪图像【英文标题】:I need some help cropping an image in PHP (GD) 【发布时间】:2010-05-27 02:49:56 【问题描述】:

http://i.imgur.com/foT9u.jpg

以该图像为例,这是我需要做的:

将蓝色方块裁剪成与黑色方块相同的比例 通过这样做,我应该能够调整蓝色方块的大小以适应黑色方块而不拉伸它 - 它会保持其比例。

注意:蓝色方块必须“从中心”裁剪。裁剪后原居中应保持居中(例如,不能从左上角裁剪)。

这是我认为需要做的事情(以风景、蓝色方块为例):

找出黑色方块的宽度和高度之间的差异 找出蓝色方块的宽度和高度之间的差异 这应该告诉我要裁剪多少蓝色方块以及使用多少“顶部偏移” 将其裁剪为适合黑色方块的比例后,即可调整其大小

我一直在搞乱类似的代码:

if (BLACK_WIDTH > BLACK_HEIGHT)

   $diffHeight = BLACK_WIDTH - BLACK_HEIGHT;
   $newHeight  = $blue_Height - $blue_Height;

   echo $newHeight;

然后使用 Photoshop 尝试了解应该如何完成此操作,但仍然失败 >.

我该怎么做呢?我怎样才能确定要裁剪多少(取决于蓝色方块是横向还是纵向)?然后如何获得偏移量以保留蓝色方块中心?

编辑:错字

【问题讨论】:

【参考方案1】: 找到您要裁剪的黑色方形宽度。示例所需宽度 => $x 求蓝色方块的比率 ($r)。所以调整大小后你会得到新的宽度 => $y

创建一个函数,例如 deceaseSize 函数,该函数会做类似循环的事情,循环直到 $x == $y

对不起,忽略我的回答。

【讨论】:

没有比循环更好的选择吗?如果我从一个大图像开始,我想缩小到更小的东西怎么办。循环以一次将图像缩小 1 个像素可能会导致一些速度问题:/

以上是关于我需要一些帮助在 PHP (GD) 中裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP (GD) 进行图像裁剪

从中心 PHP 裁剪图像

PHP 使用 GD 创建动态图像

使用 PHP 裁剪图像

PHP GD - 围绕任何给定点裁剪图像

PHP GD - 如何修改我的缩略图创建器以从中心裁剪肖像图像?