标签:五个 两种 chord soft 文件 绘图 内容 lin edr
一 添加文字水印
from PIL import Image, ImageDraw,ImageFont img = Image.open("D:\\杨幂.jpg").convert(‘RGBA‘) txt=Image.new(‘RGBA‘, img.size, (0,0,0,0)) fnt=ImageFont.truetype("C:\\Windows\\Fonts\\FZSTK.ttf",40) d=ImageDraw.Draw(txt) d.text((txt.size[0]-80,txt.size[1]-30), "杨幂",fill = (255,255,255,255),font = fnt) out=Image.alpha_composite(img, txt) out.show()
结果如下图所示:
关于上述程序有几点需要说明一下:
(1)txt=Image.new(‘RGBA‘, img.size, (0,0,0,0))
有两种用法,如下所示:
以指定的模式和大小创建一个新图像。大小以2元元组的形式给出。给colour赋单个值,表示要创建单波段图像,元组表示创建多波段图像(每个波段一个值)。如果忽略colour参数,图像将以黑色填充。如果colour设为None,图像不会被初始化。
(2)fnt=ImageFont.truetype("C:\\Windows\\Fonts\\FZSTK.ttf",40)
有两种用法,如下所示:
其中:
(3)d=ImageDraw.Draw(txt)
用法:ImageDraw.Draw(img)? Draw instance(绘图对象)
含义:创建一个可以在给定图像上绘图的对象。
(4)d.text((txt.size[0]-80,txt.size[1]-30), "杨幂",fill = (255,255,255,255),font = fnt)
ImageDraw.Draw.text():文字的绘制,第一个参数指定绘制的起始点(文本的左上角所在位置),第二个参数指定文本内容,第三个参数指定文本的颜色,第四个参数指定字体(通过ImageFont类来定义)。
除了绘制文字,还可以绘制直线,矩形等,总结如下:
(5)out=Image.alpha_composite(img, txt)
上述是将两个图像进行融合的操作,类似的还有:
以上3个函数都是将两个图像进行融合,需要注意的是,被融合的两个图像的mode和size都要相同。这里说明一下,alpha是透明度,mask是一个为“1”,“L”或“RGBA”,size和im1,im2相同的图片。
二 添加小图片水印
from PIL import Image
img = Image.open("D:\\杨幂.jpg")
mark=Image.open("D:\\太阳花.jpg")
layer=Image.new(‘RGBA‘, img.size, (0,0,0,0))
layer.paste(mark, (img.size[0]-160,img.size[1]-225))
out=Image.composite(layer,img,layer)
out.show()
结果如下图所示:
有一处需要说明:
layer.paste函数的参数为(图片,(粘贴的起始点的横坐标,粘贴的起始点的纵坐标))
含义:将参数中的图片粘贴到layer上边。
标签:五个 两种 chord soft 文件 绘图 内容 lin edr
原文地址:https://www.cnblogs.com/Terrypython/p/9939766.html