Pillow学习之Tutorial
来源:互联网 发布:js获取当前url参数 编辑:程序博客网 时间:2024/05/17 06:07
导入
from PIL import Image
打开图片
#方式一:im = Image.open('1.jpg')#方式二f = open('1.jpg','rb')im = Image.open(f)#从tar压缩文件打开from PIL import TarIOfp = TarIO.TarIO('2.tar','1.jpg') #压缩文件名 图片名im = Image.open(fp)
查看格式
im.format
查看大小
im.size
查看模式
im.mode
查看文件名
im.filename
查看位数
im.bits
显示图片
im.show()
保存图片
im.save('1.bmp')
查看高度
im.height
查看宽度
im.width
缩略图
size = (500,500) #缩略图大小im.thumbnail(size) #原图的相似图,宽高中较大值为500
复制图片
tn = im.copy()
截取图片
box = (100,100,400,400) #定义截取的左上右下边界region = im.crop(box) #一种懒方法,可用load提前执行
旋转图片
region = region.transpose(Image.ROTATE_180)#顺时针旋转180°out = im.rotate(45) #将图片逆时针旋转45°
粘贴图片
im = im.paste(region, box)
分离RGB
r,g,b = im.split() #分离RGB通道
合成RGB
im = Image.merge("RGB",(g,r,b)) #用RGB通道合成新图
更改大小
size = (500,500) #图片大小设定out = im.resize(size)
置换图片
out = im.transpose(Image.FLIP_LEFT_RIGHT) #0out = im.transpose(Image.FLIP_TOP_BOTTOM) #1out = im.transpose(Image.ROTATE_90) #2out = im.transpose(Image.ROTATE_180) #3out = im.transpose(Image.ROTATE_270) #4out = im.transpose(Image.TRANSPOSE) #5
模式转换
out = im.convert('L') #将图片转换成黑白图
使用滤镜
from PIL import ImageFilter #导入滤镜模块out = im.filter(ImageFilter.DETAIL)
point操作
out = im.point(lambda i:i*1.5)
图片增强
from PIL import ImageEnhance #导入图片增强模块enh = ImageEnhance.Contrast(im) enh.enhance(1.3).show("30% more contrast") #对比度增加30%
动态图片
im = Image.open('2.gif') #打开一张动态图片,默认第0帧im.n_frames #查看动态图帧数im.tell() #当前帧数im.seek(i) #查找第i帧im.show() #显示第i帧内容
使用ImageSequence
from PIL import ImageSequence #导入ImageSequencefor frame in ImageSequence.Iterator(im): #使用迭代器 im.show() #显示各帧图片
获取Bands
im.getbands()
将图片左右置换
from PIL import Imageimport os, sysdef roll(image, delta): "Roll an image sideways" xsize, ysize = image.size delta = delta % xsize if delta == 0: return image part1 = image.crop((0, 0, delta, ysize)) part2 = image.crop((delta, 0, xsize, ysize)) part1.load() part2.load() image.paste(part2, (0, 0, xsize-delta, ysize)) image.paste(part1, (xsize-delta, 0, xsize, ysize)) return imageif __name__ == '__main__': im = Image.open(sys.argv[1]) im.show() delta = int(sys.argv[2]) re = roll(im, delta) re.show()
常见模式
• 1 (1-bit pixels, black and white, stored with one pixel per byte)• L (8-bit pixels, black and white)• P (8-bit pixels, mapped to any other mode using a color palette)• RGB (3x8-bit pixels, true color)• RGBA (4x8-bit pixels, true color with transparency mask)• CMYK (4x8-bit pixels, color separation)• YCbCr (3x8-bit pixels, color video format)– Note that this refers to the JPEG, and not the ITU-R BT.2020, standard• LAB (3x8-bit pixels, the L*a*b color space)• HSV (3x8-bit pixels, Hue, Saturation, Value color space)• I (32-bit signed integer pixels)• F (32-bit floating point pixels)
0 0
- Pillow学习之Tutorial
- Pillow学习之Image
- Pillow学习之ImageChops
- Pillow学习之ImageColor
- Pillow学习之ImageDraw
- Pillow学习之ImageEnhance
- Pillow学习之ImageFilter
- Pillow学习之ImageFont
- Pillow学习之ImageGrab
- Pillow学习之ImageMath
- Pillow学习之ImageOps
- Pillow学习之ImageSequence
- Pillow学习之ImageStat
- python 学习之 Pillow库
- Pillow学习之Image类(一)
- Pillow学习之Image类(二)
- Python学习之使用Pillow(PIL)进行图像操作方法详解
- OSGi学习之Service Tutorial
- SpringMVC个人零碎总结
- 项目-设计秒杀系统
- 深入理解java虚拟机之volatile关键字
- Android Context 上下文 你必须知道的一切
- 九年开发生涯,而立之年带着一家老小离开了奋斗的广州
- Pillow学习之Tutorial
- 代码混淆后如何快速定位错误
- 【codeforces 782A】Andryusha and Socks
- 内存管理之memblock管理之移除块
- Spring Data JPA 实战(一)-体系结构及基本配置
- 在linux服务器上安装tomcat服务器步骤
- io流读写程序
- 浅谈数据库中的触发器
- C语言之判断100~200之间的素数(质数)