我想将矩形图像裁剪成非矩形形状。我意识到,如果您完全按照字面意思理解,那是不可能的。我最终想要的是在透明背景上裁剪成 Y 形状的图像 X。
例如,我想拍一张爱达荷州旗的照片并将其裁剪成爱达荷州的形状。我想我会做这样的事情:
- 为爱达荷州的形状创建一个像素不透明的图像,其他地方的像素都是透明的
- 读取并存储这张爱达荷州图像的某种位图
- 对于爱达荷州图像中的每个不透明像素位置,从爱达荷州旗帜图像中复制相应的像素并将其放置在空白的透明 Canvas 上
第 1 步显然是手动完成的,但其余部分将通过编程完成。我认为我的想法总体上是正确的,但我不知道我将如何处理具体问题。谁能指出我正确的方向?
就实现技术而言,我是一个 PHP 专家,所以使用 gdLibrary 或与 PHP 一起工作的东西可能是我最好的选择。
最佳答案
我认为通过简单地添加一个位掩码或 alpha channel 会容易得多。在这种情况下,您可以使用形状的负蒙版图像,然后将其作为蒙版简单地应用于常规图像,然后以透明格式保存。我从来没有真正用 GD 或 ImageMagick 做过这个,但我认为它可以像 Jerry 所建议的那样使用。
实际上这是一篇博客文章,形式类似的 SO 问题可能会有所帮助:http://about.phalacee.com/geek/creating-mask-layers-using-php-gd
关于php - 我如何以编程方式将图像裁剪为非矩形形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2120326/