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

标签 php image-processing image-manipulation

我想将矩形图像裁剪成非矩形形状。我意识到,如果您完全按照字面意思理解,那是不可能的。我最终想要的是在透明背景上裁剪成 Y 形状的图像 X。

例如,我想拍一张爱达荷州旗的照片并将其裁剪成爱达荷州的形状。我想我会做这样的事情:

  1. 为爱达荷州的形状创建一个像素不透明的图像,其他地方的像素都是透明的
  2. 读取并存储这张爱达荷州图像的某种位图
  3. 对于爱达荷州图像中的每个不透明像素位置,从爱达荷州旗帜图像中复制相应的像素并将其放置在空白的透明 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/

相关文章:

python - 使用 Keras 随机增强图像

Python分形盒计数——分形维数

c# - 从 8 位索引像素数组转换为位图对象

php - 使用php/SQL从数据库查询信息

php - Slope One 实现提供了糟糕的建议

php - 当需要多种尺寸时,图像应该如何存储?

imagemagick - 如何在 GraphicsMagick .ai 到 .png 转换中保持透明背景?

google-app-engine - App Engine 裁剪到特定的宽度和高度

php - 循环中的 Eloquent 关系

php - 无法使用php连接到远程数据库