模式转化:
PIL模式转化:将图片转化成其他模式
1 # 我们将image图像转化为灰度图像(python) 2 from PIL import Image 3 img = Image.open('c:\\1.JPG') 4 img.show() # 图像的打开展示 5 # L = I.convert('L') 6 # PIL的九种不同模式:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F 7 # 模式转化语句 8 L = img.convert('I') 9 w,h = img.size # 图尺寸 10 mode = img.mode # 图片的模式 11 geshi = img.format # 图片的格式 12 print(w,h,mode,geshi) 13 L.show()
文字水印:
from PIL import Image, ImageDraw, ImageFont # 添加文字水印 # RGBA的意思是(Red-Green-Blue-Alpha)它是在RGB上扩展包括了“alpha”通道,运行对颜色值设置透明度 im = Image.open("C:/1.jpg").convert('RGBA') txt=Image.new('RGBA', im.size, (0,0,0,0)) # 图像的大小 颜色的四个属性 数字越大越表现这个通道属性 fnt=ImageFont.truetype("c:/Windows/fonts/Candara.ttf", 50) # 选水印的字体 选暗色字体,显色的无法出现不知原因 d=ImageDraw.Draw(txt) d.text((txt.size[0]-120,txt.size[1]-50), "Hello",font=fnt,fill=(255,0,0,255)) out=Image.alpha_composite(im,txt) out.show() out.save(r"c:/pp.png")
图片水印:
# 添加图片水印 im = Image.open("C:/2.jpg") mark=Image.open("C:/1.jpg") print(im.size) # RGBA表示四个属性A表示透明度 关于new(‘模式’,大小尺寸,颜色) layer=Image.new('RGBA', im.size, (0,0,0,0)) layer.paste(mark, (im.size[0]-400,im.size[1]-200)) # 改变水印图片的位置 # composite:使用两幅给出的图片和一个与alpha参数相似用法的mask参数其值可为:"1","L","RGBA"。两幅图片的size必须相同。 out=Image.composite(layer,im,layer) out.show()
#参考 https://blog.csdn.net/icamera0/article/details/50747084