图片处理PIL.Image模块

2019-04-15 15:00发布

Image模块是PIL中最重要的模块,它有一个类叫做image,与模块名称相同。Image类有很多函数、方法及属性,接下来将依次对image类的属性、函数和方法进行介绍。 一、Image类的属性 1、 Format 定义:im.format ⇒ string or None 含义:源文件的文件格式。如果是由PIL创建的图像,则其文件格式为None。 例子:
from PIL import Image
im= Image.open(“D:CodePython estimg est.jpg”)
im.format
‘JPEG’ 注:test.jpg是JPEG图像,所以其文件格式为JPEG。
im= Image.open(“D:CodePython estimg est.gif”)
im.format
‘GIF’ 注:test.gif为GIF文件,所以其文件格式为GIF。 2、 Mode 定义:im.mode ⇒ string 含义:图像的模式。这个字符串表明图像所使用像素格式。该属性典型的取值为“1”,“L”,“RGB”或“CMYK”。对于图像模式的介绍,可以参考我的blog“Python图像处理库PIL的基本概念介绍”。 例子:
from PIL import Image
im = Image.open(“D:CodePython estimg est.jpg”)
im.mode
‘RGB’
im = Image.open(“D:CodePython estimg est.gif”)
im.mode
‘P’ 3、 Size 定义:im.size ⇒ (width, height) 含义:图像的尺寸,按照像素数计算。它的返回值为宽度和高度的二元组(width, height)。 例子:
from PIL import Image
im= Image.open(“D:CodePython estimg est.jpg”)
im.size
(800, 450)
im= Image.open(“D:CodePython estimg est.gif”)
im.size
(400, 220) 4、 Palette 定义:im.palette ⇒ palette or None 含义:颜 {MOD}调 {MOD}板表格。如果图像的模式是“P”,则返回ImagePalette类的实例;否则,将为None。 例子:
from PIL import Image
im= Image.open(“D:CodePython estimg est.jpg”)
im.mode
‘RGB’
im.palette
im= Image.open(“D:CodePython estimg est.gif”)
im.mode
‘P’
im.palette
pl= im.palette
Pl为ImagePalette类的实例。 5、 Info 定义:im.info ⇒ dictionary 含义:存储图像相关数据的字典。文件句柄使用该字典传递从文件中读取的各种非图像信息。大多数方法在返回新的图像时都会忽略这个字典;因为字典中的键并非标准化的,对于一个方法,它不能知道自己的操作如何影响这个字典。如果用户需要这些信息,需要在方法open()返回时保存这个字典。 例子:
from PIL import Image
im= Image.open(“D:CodePython estimg est.jpg”)
im.info
{‘jfif_version’:(1, 1), ‘jfif’: 257, ‘jfif_unit’: 1, ‘jfif_density’: (96, 96), ‘dpi’: (96, 96)}
im= Image.open(“D:CodePython estimg est.gif”)
im.info
{'duration':100, 'version': 'GIF89a', 'extension': ('NETSCAPE2.0', 795L), 'background': 0,'loop': 0} 1.从pyCharm提示下载PIL包
http://www.pythonware.com/products/pil/ 2.解压后,进入到目录下
cd /Users/jianan/Downloads/Imaging-1.1.7
3.python setup.py install
安装在/Library/Python/2.7/site-packages文件夹下 4.“X11/Xlib.h” mac os x SDK10.8 /10.9 的问题
原因:Mountain Lion 未随附 X11,但 XQuartz 项目提供适用于 OS X Mountain Lion 的 X11
服务器和客户端库:http://xquartz.macosforge.org。您应使用 XQuartz 2.7.2 版本或更高版本。

解决方法:http://xquartz.macosforge.org下载安装 XQuartz

sudo ln -s /opt/X11/include/X11 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/

* .将图片变为原来的一半(用于自动化生成icon)

import PIL.Image
im = PIL.Image.open(’/Users/jianan/Desktop/11.png’)
w, h = im.size
im.thumbnail((w//2, h//2))
im.save(’/Users/jianan/Desktop/12.png’, ‘jpeg’)

* .让图片模糊

import PIL.Image, PIL.ImageFilter
im = PIL.Image.open(’/Users/jianan/Desktop/11.png’)
im2 = im.filter(PIL.ImageFilter.BLUR)
im2.save(’/Users/jianan/Desktop/blur.png’, ‘jpeg’)