Python模块:PIL

PIL:是Python Image Library的缩写,图像处理的模块。Image,ImageFont,ImageDraw,ImageFilter

Image模块:

常用方法:

open()  #打开图片

new(mode,size,color)   #创建新图片

save("test.gif","GIF")   #保存(新图片路径和名称,保存格式)

size()   #获取图片大小

thumbnail(weight,high)   #缩放图片大小(宽,高)

show()    #显示图片

blend(img1,img2,alpha)   #两张图片相加,alpha表示img1和img2的比例参数。

crop()   #提取某个矩阵大小的图像。它接收一个四元素的元组作为参数,各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角。

rotate(45)    #逆时针旋转45度

transpose()    #旋转图像
    transpose(Image.FLIP_LEFT_RIGHT)       #左右对换。
    transpose(Image.FLIP_TOP_BOTTOM)       #上下对换。
    transpose(Image.ROTATE_90)             #旋转 90 度角。
    transpose(Image.ROTATE_180)            #旋转 180 度角。
    transpose(Image.ROTATE_270)            #旋转 270 度角。

paste(im,box)#粘贴box大小的im到原先的图片对象中。

convert()    #用来将图像转换为不同色彩模式。

filters()     #滤镜
    BLUR   #虚化
    EMBOSS
resize((128,128))     #resize成128*128像素大小

convert("RGBA")    #图形类型转换

getpixel((4,4))   #获取某个像素位置的值

putpixel((4,4),(255,0,0))    #写入某个像素位置的值

实例:

import Image,ImageFilter

im = Image.open("E:\\QQ2.jpg")   #打开图片
w,h = im.size   #获取图片的像素,其值为象素意义上的宽和高
print(im.format)   #获取图片格式
print(im.size)    #获取图片像素
im.thumbnail((w//2,h//2))   #缩放图片大小为原来的一半
im.save("E:\\QQ_backup.jpg",‘jpeg‘)    #保存图片,以及保存格式为jpeg
#im.show()    #显示图片
print(im.mode)    #显示模式。 RGB(true color image),此外还有,L(luminance),CMTK(pre-press image)。
box = (100,100,200,200)
s = im.crop(box)   #图像中提取出某个矩形大小的图像。它接收一个四元素的元组作为参数,各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角。
#s.show()
#s = s.transpose(Image.ROTATE_180)   #旋转180°
#im.paste(s,box)   #粘贴
#im.show()

im = Image.open("E:\\QQ2.jpg")
im2 = im.filter(ImageFilter.EMBOSS)
im2.save("E:\\QQ_2.jpg",‘jpeg‘)
#im2.show()

newImg = Image.new("RGBA",(640,480),(0,255,0))  #创建一张大小为640*480颜色为绿色的图片
newImg.save("E:\\newImg.png","PNG")

输出结果为:

JPEG
(640, 640)
RGB

ImageFont模块:

常用方法:

ImageDraw模块:

实例:生成验证码

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import Image, ImageDraw, ImageFont, ImageFilter
import random
# 随机字母:
def rndChar():
    return chr(random.randint(65, 90))
# 随机颜色1:
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))
# 240 x 60:
width = 60 * 4
height = 60
image = Image.new(‘RGB‘, (width, height), (255, 255, 255))
# 创建Font对象:
font = ImageFont.truetype("C:\\Windows\\Fonts\\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)
im = image.save(‘code.jpg‘, ‘jpeg‘)
m = Image.open(‘code.jpg‘)
m.show()

输出结果为:

时间: 2024-10-12 22:56:33

Python模块:PIL的相关文章

如何安装python模块

在python编程语言中,我们一般会用到python模块,如chardet.pygame,这些模块不包含在python的默认代码中,需要从外部下载并安装.有些模块提供了自动安装的文件,比如pygame的Windows版本,直接双击安装就可以.但大多数模块没有提供这样的安装方式,有些同学没能成功安装而导致无法在程序中引入模块.在这里,介绍一下python模块http://www.maiziedu.com/course/python/393-4380/几种常见的安装方法.   1. 直接copy 下

python模块介绍

adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:连接MySQL数据库的py2exe:用来生成windows可执行文件Pylons:我们领导推荐的web frameworkpysql

常用的python模块及安装方法

adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:连接MySQL数据库的py2exe:用来生成windows可执行文件Pylons:我们领导推荐的web frameworkpysql

转 《python开发_常用的python模块及安装方法》

http://www.cnblogs.com/hongten/p/hongten_python_more_modules.html adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:

50个很棒的Python模块

我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其他.推荐收藏. Graphical interface wxPython http://wxpython.org Graphical interface pyGtk http://www.pygtk.org Graphical interface pyQT http://www

python模块学习第 0000 题

将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果: 好可爱>%<! 题目来源:https://github.com/Yixiaohan/show-me-the-code,感谢@史江歌以及其他人,让我找到了一个系统的学习python模块的好地方. 看到这个题目的第一印象是——额,难不成让我找qq的API,然后在手机APP的壁纸上提示QQ消息?好吧,我承认自己想复杂了,所以第二个想法就来了.因为博主最近学习比较杂乱无章,所以学习了tkin

python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = False   def check_log(func): def inner(): res = func() if LOGIN_INFO: print('验证成功!') return res else: print('验证失败!') return inner   def check_admin(func)

Python模块的交叉引用问题分析

实际项目中遇到python模块相互引用问题,查资料,说是通过import局部导入的方式可以避免错误,资料如附录所述. 但更改后测试还是会出错,很疑惑!? 如果哪位读者有好的解决方法,敬请留言说明,谢谢. 所以,最好的方法是不进行交叉引用,如果需要就单独分一个模块出来. 附录:Python模块的交叉引用问题解读:How can I have modules that mutually import each other? 有下面两个文件相互引用,Python解释器报错. foo.py: from

python模块以及导入出现ImportError: No module named &#39;xxx&#39;问题

python模块以及导入出现ImportError: No module named 'xxx'问题 python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模 块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用 如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名就好,比 如在a.py中使用b.py:  import b 但是如果要import一个不同目录的文件(例如b.py)该怎么做

python模块搜索路径

1.电脑版 (1).python安装目录中\Lib\site-packages\下建立*.pth文件,写入模块路径 (2).添加环境变量:变量名:pythonpath;变量值:模块(文件夹)路径 ,若有多个,用半角分号";"隔开 2.手机版 在resource\site.py文件中添加代码段 import syssys.path.append("模块(文件夹)路径") 发现:第一个参数都是C:\\resource 我的理解: 程序安装盘下的site.py指定模块路径