【问题标题】:I need some help cropping an image in PHP (GD)我需要一些帮助在 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 尝试了解应该如何完成此操作,但仍然失败 >.

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

编辑:错字

【问题讨论】:

    标签: php image gd crop


    【解决方案1】:
    • 找到您要裁剪的黑色方形宽度。示例所需宽度 => $x
    • 求蓝色方块的比率 ($r)。所以调整大小后你会得到新的宽度 => $y
    • 创建一个函数,例如 deceaseSize 函数,该函数会做类似循环的事情,循环直到 $x == $y

    • 对不起,忽略我的回答。

    【讨论】:

    • 没有比循环更好的选择吗?如果我从一个大图像开始,我想缩小到更小的东西怎么办。循环以一次将图像缩小 1 个像素可能会导致一些速度问题:/
    猜你喜欢
    • 2013-04-20
    • 2011-11-16
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多