2010-05-27 108 views
1

http://i.imgur.com/foT9u.jpg我需要一些帮助PHP裁剪图像(GD)

使用图像为例,这里就是我需要做的:

  • 作物蓝色方块具有相同的比例比那样的黑色方块
  • 从这样做,我应该能够调整蓝色方块以适应黑色方块而不伸展它 - 它会保留它的比例。

注:蓝色正方形必须从中心'裁剪'。原始中心应该保留在作物之后的中心(例如,它不能从左上角切下)。

这里就是我想需要做的事情(使用,景观,蓝色正方形为例):

  • 图出来的黑色方块宽度之差与高度
  • 弄清楚蓝色方块宽度和高度之间的差异
  • 这应该告诉我用多少“顶部偏移量”来裁剪蓝色方块的程度
  • 一旦将其裁剪以适合黑色方块的比例,调整大小

我一直在瞎搞类似代码:

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

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

+0

我不能删除我自己的答案。 – 2010-05-27 03:01:53

+0

没有比循环更好的选择吗?如果我从一张我想缩小到更小的大图像开始。一次缩小图像1像素的循环可能会导致一些速度问题:/ – dave 2010-05-27 03:04:25