我有一个基本纹理,我想在该纹理图像上画多条线。在图像上的任意位置随机绘制线条。我能够绘制线条,但是这些线条的颜色应该是渐变的。
线条的颜色应该从边缘开始是浅色,从中心开始是深色。我现在正在使用的代码在下面
$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);
我希望输出像下面的图片一样
但是我只能像下面这样创建:
背景是纹理图像,线条(橙色和绿色)是我要在背景上绘制的线(纹理图像)。
我在文档中找不到任何内容,感谢您的帮助
答案 0 :(得分:0)
这是在ImageMagick命令行中执行此操作的一种方法。您可以将其翻译为Imagick。
创建背景图片
g++ -std=c++14 myfile.cpp
clang++ -std=c++14 myfile.cpp
icc -std=c++14 myfile.cpp
创建具有最终渐变的一维红线图像
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
您可以使用-white-threshold以外的其他方法来调整渐变alpha通道中沿红线的透明度。