这似乎是一个重复的问题,但我找不到确切的场景。不过可能是错的。
我的问题是,假设我在150x150的画布内有一个100x100像素的正方形,$square。背景是透明的。
我克隆了正方形,然后裁剪了我需要处理的部分($detail)。
我需要在$detail上应用从上到下的渐变,这样顶部的白色透明度大约为60%,底部的透明度为100%。
然后,在$image上合成$detail。
我不能使用convert,只能使用php-imagick函数。
提前感谢!是否
convert
在最近的版本中有一个特殊的创建运算符,用于生成渐变,简称为gradient:
,它们被实现为伪图像格式。
如果您想要非垂直渐变或具有透明度,gradient:
运算符的使用可能会非常复杂,因此请阅读文档。请注意,ImageMagick的底层版本将对您的操作方式产生影响。
您可以使用IMagick操作符创建伪格式图像:Imagick::newPseudoImage()
一旦你有了合适大小的渐变,你就可以用你的$detail
图像来合成它。
一般来说,我使用IMagick之类的东西的技巧是,首先使用convert
获得正确的命令,然后将其翻译到接口。