python PIL 图像处理
# 导入Image库
import Image
# 读取图片
im = Image.open("1234.jpg")
# 显示图片
im.show()
# 创建图片
# 语法:new(mode, size, color=0) newim = Image.new("RGBA",(640,480),(0,255,0))
# 保存图片
newim.save("123.jpg","jpg") # 保存为jpg格式
# 图片合成
# 语法:blend(im1, im2, alpha) # alpha表示im1和im2的比例参数 Image.blend(im,newim,0.5)
# 点操作
im.point(function) # function接受一个参数,且对图片中的每一个点执行这个函数
# 查看图像信息
im.format() im.size() im.mode()
# 图片剪裁
box = (100,100,400,400) # 设置要裁剪的区域 region = im.crop(box) # region是一个新的图像对象
# 图像合并
im.paste(region,box)
# 改变图像的大小
out = im.resize((128,128)) #resize成128*128像素大小
# 旋转图像
im.rotate(45)
# 图像类型转换
im = im.convert("RGBA")
# 获取某个像素位置的值
im.getpixel((4,4))
# ImageDraw模块是对Image对象进行简单的二维图像操作的模块
import ImageDraw
# 在显示的图片中,输出文字
draw = ImageDraw.Draw(im) draw.text((10,10),"hello,python",file=(255,0,0),font=None)
# 在图像中画线
draw.line((0,0) + im.size,fill=128)
# eg_v1 生成字母验证码图片
import Image import ImageDraw import ImageFont import ImageFilter import random # 生成随机字母 def Chr(): return chr(random.randint(65,90)) # 随机颜色1 def Color(): return (random.randint(64,255),random.randint(64,255)) # 随机颜色2 def Color2(): return (random.randint(32,127),random.randint(32,127)) # 创建图片 width = 60 * 4 height = 60 image = Image.new("RGBA",(width,height),(255,255,255)) # 创建Font对象 font = ImageFont.truetype("Arial.ttf",36) # 创建Draw对象 draw = ImageDraw.Draw(image) # 填充像素 for x in range(width): for y in range(height): draw.point((x,y),fill = Color()) # 输入文字 for i in range(4): draw.text((60 * i + 10,10),Color(),font=font,fill=Color2()) image = image.filter((ImageFilter.BLUR)) image.save("123.jpg","jpeg")