如何以编程方式将图像裁剪为非矩形形状?

Jas*_*ett 5 php image-manipulation image-processing

我想将矩形图像裁剪为非矩形图像.我意识到,如果你完全从字面上理解,那是不可能的.我想要最终得到的是图像X,在透明背景上裁剪成Y形.

比方说,我想拍一张爱达荷州旗的照片,然后把它剪成爱达荷州的形状.我想我会做这样的事情:

  1. 创建一个图像,其中包含Idaho形状的不透明像素,其他地方的透明像素
  2. 读取并存储此Idaho状态图像的某种位图
  3. 对于Idaho状态图像中的每个不透明像素位置,从Idaho状态标志图像复制相应的像素并将其放置在空白的透明画布上

显然,步骤1将手动完成,但其余的将以编程方式完成.我认为我一般都有正确的想法,但我不知道我是如何处理细节的.谁能指出我正确的方向?

就实现技术而言,我是一个PHP人员,因此使用gdLibrary或与PHP一起工作的东西可能是我去的最佳方式.

pro*_*son 2

我认为通过简单地添加位掩码或 Alpha 通道会更容易。在这种情况下,您可以使用形状的负片蒙版图像,然后将其作为蒙版应用到常规图像上,然后以透明格式保存。我实际上从未使用 GD 或 ImageMagick 这样做过,但我认为它可以像 Jerry 所建议的那样可用。

实际上,这是一篇类似的博客文章,可能会有所帮助:http://about.phalacee.com/geek/creating-mask-layers-using-php-gd