在图片上添加水印
第一种方法:
from PIL import Image, ImageDraw, ImageFont
# 图片添加水印
def add_num(img):
# 创建绘画对象
draw = ImageDraw.Draw(img)
myfont = ImageFont.truetype('C:/windows/fonts/Arial.ttf',size=40)
fillcolor = '#ff0000'
width,height = img.size
# 参数一:位置(x轴,y轴);参数二:填写内容;参数三:字体;参数四:颜色
draw.text((width-80, 5),'100',font=myfont,fill=fillcolor)
img.save('result.jpg','jpeg')
return 0
if __name__ == '__main__':
image = Image.open('D:/pic.jpg')
add_num(image)
image.show()
第二种方法:
from PIL import Image, ImageDraw, ImageFont
def add_num(img,mark):
# 创建一个新图片
layer = Image.new('RGBA',img.size,(0,0,0,0))
# 图像粘贴
layer.paste(mark,(img.size[0]-200,img.size[1]-150))
# 制作蒙版
out = Image.composite(layer,img,layer)
# 保存
out.save('res.jpg','jpeg')
# 打开图片
out.show()
return 0
if __name__ == '__main__':
image = Image.open('d:/pic.jpg')
mark = Image.open('d:/2222.png')
add_num(image,mark)
写前知识必备:
安装
$ pip install pillow
好了,下面开始进入教程~
Image类
Pillow中最重要的类就是Image,该类存在于同名的模块中。可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建一个图片。
使用Image模块中的open函数打开一张图片:
from PIL import Image
im = Image.open("lena.ppm")
如果打开成功,返回一个Image对象,可以通过对象属性检查文件内容
from __future__ import print_function
print(im.format, im.size, im.mode)
# PPM (512, 512) RGB
format属性定义了图像的格式,如果图像不是从文件打开的,那么该属性值为None;size属性是一个tuple,表示图像的宽和高(单位为像素);mode属性为表示图像的模式,常用的模式为:L为灰度图,RGB为真彩色,CMYK为pre-press图像。
如果文件不能打