python PIL 图像处理操作

时间:2023-03-08 22:24:27
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")