python PIL 图像处理操作

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")

  

 

posted @ 2017-05-15 09:37  xie仗剑天涯  阅读(1212)  评论(0编辑  收藏  举报