Python PIL / imagemagick在基本图像上合并渐变

时间:2016-07-19 18:26:17

标签: python image-processing imagemagick python-imaging-library imagemagick-convert

我已经知道如何获得渐变图像,但如何合并渐变图像和基本图像,使其看起来像这样: link

convert -size 1327x1327 xc:transparent gradient: grad_image.png

或其他方法已被建议here 基本图片为base image 输出应该是底部的渐变,如下所示:https://1drv.ms/i/s!Aoi-6MWkMNN4kGLYNmqN9dm1nrOD

1 个答案:

答案 0 :(得分:1)

我只能猜测你要做什么,所以我的第一次尝试就是这样:

convert jelly.jpg \( -size 1140x100! gradient:none-black \) -gravity south -composite -pointsize 36 -fill white -annotate +0+20 "Title Treatment" result.png

enter image description here

重要的部分是渐变从黑色到透明而不是黑色到白色,否则你会在背景上变白,我猜你不会我想要。

-gravity south将渐变置于底部,并设置标题的初始位置,但随后将-annotate +0+20从底部向上移动20像素。

希望有所帮助。

更新1

如果要控制渐变,可以使用rgb()常量更改它的开始和结束,如下所示:

convert jelly.jpg \( -size 1140x100! gradient:"rgba(0,0,0,0.25)"-"rgb(50,50,50)" \) -gravity south -composite -pointsize 36 -fill white -annotate +0+20 "Title Treatment" result.png

enter image description here

或者你可以让它从一种颜色变为另一种颜色:

convert jelly.jpg \( -size 1140x100! gradient:"rgba(0,0,0,0.25)"-"rgba(255,255,0,0.75)" \) -gravity south -composite -pointsize 36 -fill white -annotate +0+20 "Title Treatment" result.png

enter image description here

或者您可以更改混合模式,所以我在这里使用colorBurn

convert jelly.jpg \( -size 1140x100! gradient:"rgba(0,0,0,0.25)"-"rgba(255,255,0,0.75)" \) -gravity south -compose colorburn -composite -pointsize 36 -fill white -annotate +0+20 "Title Treatment" result.png

enter image description here

如果您想尝试其他一些混合模式,可以获得一个列表:

identify -list compose:

Atop
Blend
Blur
Bumpmap
ChangeMask
Clear
ColorBurn
ColorDodge
Colorize
CopyAlpha
CopyBlack
CopyBlue
CopyCyan
CopyGreen
Copy
CopyMagenta
CopyRed
CopyYellow
Darken
DarkenIntensity
DivideDst
DivideSrc
Dst
Difference
Displace
Dissolve
Distort
DstAtop
DstIn
DstOut
DstOver
Exclusion
HardLight
HardMix
Hue
In
Intensity
Lighten
LightenIntensity
LinearBurn
LinearDodge
LinearLight
Luminize
Mathematics
MinusDst
MinusSrc
Modulate
ModulusAdd
ModulusSubtract
Multiply
None
Out
Overlay
Over
PegtopLight
PinLight
Plus
Replace
Saturate
Screen
SoftLight
Src
SrcAtop
SrcIn
SrcOut
SrcOver
VividLight
Xor

更新2

如果你想模糊文字,首先更容易创建,模糊它,然后像这样在背景上加下:

convert -size 1140x100! gradient:none-black     \
   -pointsize 36 -fill white -gravity south     \
   -annotate +5+25 "Title Treatment" -blur 0x4  \
   -annotate +0+20 "Title Treatment" jelly.jpg +swap -composite result.png

enter image description here

更新3

如果你想要遮蔽你的文字,控制你的渐变并做一些其他的事情,你可能最好一次做一件事。所以,让我们首先尝试使用阴影制作文本,然后在图像上添加渐变,然后将阴影文本放在其上 - 希望我们越来越近了!

string="Funky Main Title\nSub-title"
convert -size 1200x400 xc:none -pointsize 72 -gravity center   \
       -fill white  -stroke black  -annotate +25+65 "$string"  \
       \( +clone -background black  -shadow 70x4+5+5 \) +swap  \
       -background none -flatten  -trim +repage shadowed.png

enter image description here

现在将渐变放在主图像和标题顶部:

convert jelly.jpg                                                   \
  \( -size 1140x100! gradient:"rgba(0,0,0,0.25)"-"rgb(50,50,50)" \) \
  -gravity south -composite                                         \
  shadowed.png -composite result.png

enter image description here