Python图像处理库 PIL
2015-04-09 18:29
330 查看
Python Image Library PIL 下载地址:pythonware 该软件包提供了基本的图像处理功能如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。
图像处理中的概念
(PIL只支持位图,不支持矢量图)
位图 — 采用像素来识别
图像的大小 — 表示的是像素的大小:比如 640*480 表示长为 640 ,宽为 480 的图像
位图的坐标 — 采用左上角定位,即左上角是(0, 0),右下角是 (max, max)
位图中的一个区域 — 有左上角加右下角表示,如(0, 0, 200, 200) 一个 200*200 的区域
支持多种模式的图形颜色模式
RGB — 将颜色分成红色、绿色、蓝色三个原色通道,通过不同的组合来表示颜色,每个原色的大小在 0~255 之间
CMYK — 采用青 (Cyan) ,品红 (Magenta) ,黄(Yellow) ,黑 (blacK) 四个颜色通道,来源于油墨,所以主要用于印刷行业
灰阶图 — 只包含灰度信息,不包含彩色,一般使用 8B 大小的数来表示
安装:
centos ubuntu 下安装 python-imaging
或 # easy_install PIL
加载一幅图像:
format 识别图形的源格式,如果该文件不是从文件中读取的,则被置为 None 值
size 返回的一个二元组,包含水平和垂直方向上的像素数
mode:
缩放和保存
模糊效果
新建一个红色图像
把一个背景插入一幅图片
convert() 该函数可以用来将图像转换为不同色彩模式。
resize() 如果bg原来大小为255,255,这样就可直接变为100,100 ,ImageBILINEAR指定采用双线性法对像素点插值)
旋转
图像增强
切分图片
使用左上角为 (0, 0)的坐标系统。同时要注意,这些坐标指向像素之间的位置。
图像处理中的概念
(PIL只支持位图,不支持矢量图)
位图 — 采用像素来识别
图像的大小 — 表示的是像素的大小:比如 640*480 表示长为 640 ,宽为 480 的图像
位图的坐标 — 采用左上角定位,即左上角是(0, 0),右下角是 (max, max)
位图中的一个区域 — 有左上角加右下角表示,如(0, 0, 200, 200) 一个 200*200 的区域
支持多种模式的图形颜色模式
RGB — 将颜色分成红色、绿色、蓝色三个原色通道,通过不同的组合来表示颜色,每个原色的大小在 0~255 之间
CMYK — 采用青 (Cyan) ,品红 (Magenta) ,黄(Yellow) ,黑 (blacK) 四个颜色通道,来源于油墨,所以主要用于印刷行业
灰阶图 — 只包含灰度信息,不包含彩色,一般使用 8B 大小的数来表示
安装:
centos ubuntu 下安装 python-imaging
或 # easy_install PIL
加载一幅图像:
>>> from PIL import Image #Image是模块名字,模块是以.py结尾的文件 >>> image = Image.open('sourece.jpg') #这里的Image是Image.py模块的一个类,和上面的是不同。image是Image的一个对象 >>> print(image.format, image.size, image.mode) ('JPEG', (200, 200), 'RGB')三个属性:
format 识别图形的源格式,如果该文件不是从文件中读取的,则被置为 None 值
size 返回的一个二元组,包含水平和垂直方向上的像素数
mode:
1 | 1位像素,黑和白,存成8位的像素 |
L | 8位像素,黑白 |
P | 8位像素,使用调色板映射到任何其他模式 |
RGB | 3×8位像素,真彩 |
RGBA | 4×8位像素,真彩+透明通道 |
CMYK | 4×8位像素,颜色隔离 |
YCbCr | 3×8位像素,彩色视频格式 |
I | 32位整型像素 |
F | 32位浮点型像素 |
>>> w, h = img.size #获取图像尺寸 >>> img.thumbnail(( w//2, h//2)) #缩放图像50% >>> img.save("/root/Pictures/s.png","jpeg") 把缩放后的图形保存,源格式为jpeg
模糊效果
>>> import Image, ImageFilter >>> img = Image.open('source.jpg') >>> img2 = img.filter(ImageFilter.BLUR) >>> img2.save('./s2.ipg','jpeg')
新建一个红色图像
new = Image.new('RGBA',(640,480),(255,0,0)) new.save('abc.jpg')
把一个背景插入一幅图片
>>> main = Image.open('female.jpg') >>> print main.size, main.mode, main.format (640, 960) RGB JPEG >>> bg = Image.open('background.jpg').convert(main.mode) bg = bg.resize(main.size) newimg = Image.blend(main, bg, 0.2) newimg.save('woman.jpg')
convert() 该函数可以用来将图像转换为不同色彩模式。
resize() 如果bg原来大小为255,255,这样就可直接变为100,100 ,ImageBILINEAR指定采用双线性法对像素点插值)
bg = bg.resize( (100,100), Image.BILINEAR )
旋转
img = Image.open('b.jpg') new_img = img.rotate(45) new_img.save('c.jpeg')
out = im.transpose(Image.FLIP_LEFT_RIGHT) #左右对换。 out = im.transpose(Image.FLIP_TOP_BOTTOM) #上下对换。 out = im.transpose(Image.ROTATE_90) #旋转 90 度角。 out = im.transpose(Image.ROTATE_180) #旋转 180 度角。 out = im.transpose(Image.ROTATE_270) #旋转 270 度角
图像增强
import ImageFilter img = Image.open('b.jpg') i = img.filter(ImageFilter.DETAIL) i.save('i.jpg')图像会比之前稍微清晰
切分图片
import Image img = Image.open('batman.jpg') box = (100,100,200,200) region = img.crop(box) region.save('converted.jpg')区域由一个4元组定义,表示为坐标是 (left, upper, right, lower)。 Python Imaging Library
使用左上角为 (0, 0)的坐标系统。同时要注意,这些坐标指向像素之间的位置。
相关文章推荐
- 在python3下用PIL做图像处理
- gimp的python控制台以及python的PIL图像处理库
- Python图像处理之PIL模块
- PIL:Python Imaging Library(图像处理标准库)和Qrcode:二维码生成
- Python图像处理PIL库简介
- PIL-python的图像处理模块
- 在python3下用PIL做图像处理
- 在python3下用PIL做图像处理
- Python图像处理库(PIL)的安装与简单使用
- gimp的python控制台以及python的PIL图像处理库
- Python图像处理库(PIL)--简介和基本概念
- 在python3下用PIL做图像处理
- Python 之 使用 PIL 库做图像处理
- python使用PIL库做图像处理
- Python 之 使用 PIL 库做图像处理
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
- 在python3下用PIL做图像处理
- python(pil)图像处理(等比例压缩、裁剪压缩) 缩略(水印)图
- [Python] 图像简单处理(PIL or Pillow)
- Windows安装Python图像处理库:PIL模块