Discuss / Python / pillow模块

pillow模块

Topic source

Mr_RightMen

#1 Created at ... [Delete] [Delete and Lock User]
#Pillow ,图像处理的标准库

from PIL import Image,ImageFilter
import os
im = Image.open('1.png')
w,h = im.size
print('Original image size: {0}x{1}'.format(w,h))
print(im.mode)

# 缩放比例,注意图片的mode,需要转换
rgb_im = im.convert('RGB')
rgb_im.thumbnail((w//2,h//2))
print('Resize image to:{0}x{1}'.format(w//2,h//2))
print(rgb_im.mode)
rgb_im.save('2.jpg')

# 模糊图片
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.png')


# 绘图

from PIL import Image,ImageDraw,ImageFont,ImageFilter
import random

# 生成随机字母
def rndChar():
    return chr(random.randint(65,90))
# 生成随机颜色,用来填充背景
def rndColor():
    return(random.randint(64,255),random.randint(64,255),random.randint(64,255))
# 生成随机颜色2,用来填充文本
def rndColor2():
    return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

# 定义长宽
width = 60 * 4
height = 60
# 新建RGB类的图片,默认为白色
image = Image.new('RGB',(width,height),(255,255,255))
# 新建字体对象
font = ImageFont.truetype('/usr/share/fonts/truetype/msttcorefonts/Arial.ttf',36)
# 新建draw对象
draw = ImageDraw.Draw(image)

# 填充每个像素
for x in range(width):
    for y in range(height):
        draw.point((x,y),fill=rndColor())

# 填充文本文字
for t in range(4):
    draw.text((60 * t + 10,10),rndChar(),font=font,fill=rndColor2())

# 模糊
image = image.filter(ImageFilter.BLUR)
# 保存图片
image.save('code.jpg')
# 显示图片
image.show('code.jpg')

  • 1

Reply