Python 2.7 如何使用python wand执行ImageMagick渐变调用
试图将ImageMagick命令转换为Python Wand代码,但我看不到使用Wand创建渐变图像的方法Python 2.7 如何使用python wand执行ImageMagick渐变调用,python-2.7,imagemagick,wand,Python 2.7,Imagemagick,Wand,试图将ImageMagick命令转换为Python Wand代码,但我看不到使用Wand创建渐变图像的方法 convert -size 800x800 gradient:"rgba(0,0,0,0.12)-rgba(0,0,0,1)" gradient_overlay.png convert gradient_overlay.png background.png -compose Overlay -composite -depth 8 background_gradient.p
convert -size 800x800 gradient:"rgba(0,0,0,0.12)-rgba(0,0,0,1)" gradient_overlay.png
convert gradient_overlay.png background.png -compose Overlay -composite -depth 8 background_gradient.png
有人知道我如何用魔杖做到这一点吗?与魔杖一起使用的ImageMagick等效物
我并没有用过魔杖,但我可以通过参考ImageMagick向你们展示如何使用它。可以创建新的透明图像。然后使用fx操作符将alpha通道修改为渐变
等效棒参考为:
创建默认的新透明图像-请参见
使用fx将alpha通道转换为渐变-请参见
下面是我如何得到外汇公式的:
您希望顶部0.12为12%灰色,底部1.0为100%灰色/白色。因此,我们采用以下公式:
c = a*j + b
At j=0 the top, you need 0.12, so
0.12 = a*0 + b --> b = 0.12
At j=(h-1) the bottom, you want 1, so
1 = a*(h-1) + 0.12 --> a = (1-0.12)/(h-1)
So the equation is:
c = j*(1-0.12)/(h-1) + 0.12
h是图像800的高度。与魔杖一起使用的ImageMagick等效物
我并没有用过魔杖,但我可以通过参考ImageMagick向你们展示如何使用它。可以创建新的透明图像。然后使用fx操作符将alpha通道修改为渐变
等效棒参考为:
创建默认的新透明图像-请参见
使用fx将alpha通道转换为渐变-请参见
下面是我如何得到外汇公式的:
您希望顶部0.12为12%灰色,底部1.0为100%灰色/白色。因此,我们采用以下公式:
c = a*j + b
At j=0 the top, you need 0.12, so
0.12 = a*0 + b --> b = 0.12
At j=(h-1) the bottom, you want 1, so
1 = a*(h-1) + 0.12 --> a = (1-0.12)/(h-1)
So the equation is:
c = j*(1-0.12)/(h-1) + 0.12
h是图像800的高度。以下是我如何基于fmw42反馈解决它的
with Color('black') as blackColor:
with Image(width=800, height=800, background=blackColor) as black:
blackPath = existing[:existing.rfind('/') + 1] + 'black.png'
with Color('white') as whiteColor:
with Image(width=800, height=800, background=whiteColor) as alpha:
fxFilter = "(j*(1-0.12)/(h-1)+0.12)"
with alpha.fx(fxFilter) as filteredImage:
black.composite_channel('default_channels', filteredImage, 'copy_opacity', 0, 0)
black.save(filename=blackPath)
下面是我如何基于fmw42反馈解决它的
with Color('black') as blackColor:
with Image(width=800, height=800, background=blackColor) as black:
blackPath = existing[:existing.rfind('/') + 1] + 'black.png'
with Color('white') as whiteColor:
with Image(width=800, height=800, background=whiteColor) as alpha:
fxFilter = "(j*(1-0.12)/(h-1)+0.12)"
with alpha.fx(fxFilter) as filteredImage:
black.composite_channel('default_channels', filteredImage, 'copy_opacity', 0, 0)
black.save(filename=blackPath)
您需要分配一个wand实例,设置画布大小,然后读取伪图像格式 从wand.image导入图像 从wand.api导入库 将图像作为画布: library.MagickSetSizecanvas.wand,800800 canvas.readfilename=渐变:rgba0,0,0,0.12-rgba0,0,0,1 canvas.savefilename=gradient\u overlay.png
您需要分配一个wand实例,设置画布大小,然后读取伪图像格式 从wand.image导入图像 从wand.api导入库 将图像作为画布: library.MagickSetSizecanvas.wand,800800 canvas.readfilename=渐变:rgba0,0,0,0.12-rgba0,0,0,1 canvas.savefilename=gradient\u overlay.png
谢谢你的解释,你建议我能够解决这个问题。你可以发回你的魔杖代码,这样其他人可以从中受益。提供如下。谢谢你添加。但我上面回答中的代码可能会为您提供一种更简短、更直接的魔杖方法。感谢您的解释,并建议我能够解决此问题。您可以发回您的魔杖代码,以便其他人可以从中受益。提供如下。感谢您添加此内容。但上面我的答案中的代码可能会为您提供一个更简短、更直接的Wand方法。