python照片处理_Python常用的图片处理方法

一、图片合并

把图片2合并到图片1上指定的位置并调用windows默认看图软件显示from PIL import Image

# from PIL import ImageChops

img1 = Image.open(e:/sf/1.jpg)

img2 = Image.open(e:/sf/2.png)

img1.paste(img2, (196, 139))

img1.show()

二、剪切图片from PIL import Image

# from PIL import ImageChops

img1 = Image.open(e:/sf/1.jpg)

box = (10, 10, 100, 100)

region = img1.crop(box)

region.show()

三、向图片上写字from PIL import Image, ImageDraw, ImageFont

txt1 = u"第一个文字"

txt2 = u"第二个文字 "

img1 = Image.open(e:/sf/1.jpg)

drawImg = ImageDraw.Draw(img1)

ttfront = ImageFont.truetype(msyh.ttf, 55)

drawImg.text((100, 10), txt1, fill=(0, 0, 0), font=ttfront)

drawImg.text((160, 100), txt2, fill=(0, 0, 0), font=ttfront)

img1.show()

四、把图片中的白色转为透明色from PIL import Image

img = Image.open("jgz.jpg")

img = img.convert("RGBA")

datas = img.getdata()

newData = list()

for item in datas:

if item[0] > 220 and item[1] > 220 and item[2] > 220:

newData.append((255, 255, 255, 0))

else:

newData.append(item)

img.putdata(newData)

img.save("jgz_alpha.png", "PNG")

五、根据图片宽高对像素进行一些处理from PIL import Image

# 加载图片

img = Image.open(./bg/2.jpg)

pixs = img.load()

for x in range(img.width):

for y in range(img.height):

item = pixs[x, y]

# 对像素进行一些处理

img.save("b.png")

一、图片合并 把图片2合并到图片1上指定的位置并调用windows默认看图软件显示from PIL import Image # from PIL import ImageChops img1 = Image.open(e:/sf/1.jpg) img2 = Image.open(e:/sf/2.png) img1.paste(img2, (196, 139)) img1.show() 二、剪切图片from PIL import Image # from PIL import ImageChops img1 = Image.open(e:/sf/1.jpg) box = (10, 10, 100, 100) region = img1.crop(box) region.show() 三、向图片上写字from PIL import Image, ImageDraw, ImageFont txt1 = u"第一个文字" txt2 = u"第二个文字 " img1 = Image.open(e:/sf/1.jpg) drawImg = ImageDraw.Draw(img1) ttfront = ImageFont.truetype(msyh.ttf, 55) drawImg.text((100, 10), txt1, fill=(0, 0, 0), font=ttfront) drawImg.text((160, 100), txt2, fill=(0, 0, 0), font=ttfront) img1.show() 四、把图片中的白色转为透明色from PIL import Image img = Image.open("jgz.jpg") img = img.convert("RGBA") datas = img.getdata() newData = list() for item in datas: if item[0] > 220 and item[1] > 220 and item[2] > 220: newData.append((255, 255, 255, 0)) else: newData.append(item) img.putdata(newData) img.save("jgz_alpha.png", "PNG") 五、根据图片宽高对像素进行一些处理from PIL import Image # 加载图片 img = Image.open(./bg/2.jpg) pixs = img.load() for x in range(img.width): for y in range(img.height): item = pixs[x, y] # 对像素进行一些处理 img.save("b.png")
经验分享 程序员 微信小程序 职场和发展