使用 imagick 创建具有渐变颜色的线条
Create lines with gradient color using imagick
我有一个基本纹理,我想在该纹理图像上绘制多条线。线条应随机绘制在图像上的随机位置。我可以画线,但这些线的颜色应该是渐变的。
线条的颜色应该从边缘开始变浅,从中心开始变暗。我现在使用的代码如下
$draw = new \ImagickDraw();
$draw->setStrokeOpacity(0);
$draw->setStrokeColor('red');
$draw->setStrokeWidth(0);
$draw->setFillColor('red');
$draw->line(10, 30, 380, 30);
$image = new \Imagick();
$image->newImage($width * 3, $height * 2, 'rgba(0,0,0,0)');
$image->setImageFormat('png');
$image->drawImage($draw);
我希望输出像下图一样
但我只能像下面这样创建:
背景是纹理图像,线条(橙色和绿色)是我想在背景(纹理图像)上绘制的线条。
我在文档中找不到任何内容,感谢任何帮助
这是在 ImageMagick 命令行中执行此操作的一种方法。您可以将其翻译成 Imagick。
创建背景图片
convert -size 500x500 xc:gray +noise gaussian -channel g -separate +channel background.png
创建带有末端渐变的一维红线图像
convert -size 300x1 xc:red \
\( -size 1x300 gradient: -rotate 90 -solarize 50% -level 0x50% -white-threshold 50% +write grad.png \) \
-alpha off -compose copy_opacity -composite red_grad.png
将红线图像放在背景上
convert background.png red_grad.png -geometry +100+250 -compose over -composite result.png
您可以使用-white-threshold 以外的其他方法来调整渐变alpha 通道中沿红线的透明度。
我有一个基本纹理,我想在该纹理图像上绘制多条线。线条应随机绘制在图像上的随机位置。我可以画线,但这些线的颜色应该是渐变的。
线条的颜色应该从边缘开始变浅,从中心开始变暗。我现在使用的代码如下
$draw = new \ImagickDraw();
$draw->setStrokeOpacity(0);
$draw->setStrokeColor('red');
$draw->setStrokeWidth(0);
$draw->setFillColor('red');
$draw->line(10, 30, 380, 30);
$image = new \Imagick();
$image->newImage($width * 3, $height * 2, 'rgba(0,0,0,0)');
$image->setImageFormat('png');
$image->drawImage($draw);
我希望输出像下图一样
但我只能像下面这样创建:
背景是纹理图像,线条(橙色和绿色)是我想在背景(纹理图像)上绘制的线条。
我在文档中找不到任何内容,感谢任何帮助
这是在 ImageMagick 命令行中执行此操作的一种方法。您可以将其翻译成 Imagick。
创建背景图片
convert -size 500x500 xc:gray +noise gaussian -channel g -separate +channel background.png
创建带有末端渐变的一维红线图像
convert -size 300x1 xc:red \
\( -size 1x300 gradient: -rotate 90 -solarize 50% -level 0x50% -white-threshold 50% +write grad.png \) \
-alpha off -compose copy_opacity -composite red_grad.png
将红线图像放在背景上
convert background.png red_grad.png -geometry +100+250 -compose over -composite result.png
您可以使用-white-threshold 以外的其他方法来调整渐变alpha 通道中沿红线的透明度。