首页 > 编程笔记

Pillow Image图像文件属性

使用 Image 模块的 open() 函数打开的图像文件都有以下属性:

1) format

图像文件的格式,如 JPEG、GIF、BMP、TIFF 等。

2) mode

图像文件的色彩表示模式,如 RGB、P 等。

图像的色彩表示模式如下表所示:
图像的色彩表示模式
模式 说明
1 1 位的像素,黑与白,存储为 8 位的像素
L 8 位的像素,黑与白
P 8 位的像素,使用颜色对照表(color palette table)
RGB 3*8 位的像素,真实颜色
RGBA 4*8 位的像素,真实颜色加上屏蔽
CMYK 4*8 位的像素,颜色分离
YCbCr 3*8 位的像素,颜色图像格式
I 32 位的整数像素
F 32 位的浮点数像素


3) size

图像文件的大小,以像素为单位。返回值是一个含两个元素的元组,格式为(width,height)。

4) palette

图像文件的颜色对照表(color palette table)。 

5) info

图像文件的辞典集。

下面的示例是使用“打开旧文件”对话框打开图像文件,并显示该图像文件的所有属性。
#显示图像文件的属性
from tkinter import *
import tkinter. filedialog
from PIL import Image
#创建主窗口
win = Tk()
win.title(string = "图像文件的属性")
#打开一个[打开旧文件]对话框
def createOpenFileDialog() :
#返回打开的文件名
    filename = myDialog.show()
#打开该文件
    imgFile = Image . open (filename)
#输入该文件的属性
    label1 .config(text = "format = " + imgFile. format)
    label2. config(text = "mode =" + imgFile . mode)
    label3.config(text = "size = " + str (imgFile.size) )
    label4.config(text = "info = "+ str (imgFile.info) )
#创建Label控件,用于输入图像文件的属性
label1 = Label (win, text = "format = ")
label2 = Label (win, text = "mode = ")
label3 = Label (win, text = "size = ")
label4 = Label (win, text = "info = ")
#靠左边对齐
label1. pack (anchor=W)
label2. pack (anchor=W)
label3. pack (anchor=W)
label4.pack (anchor=W)
#单击按钮后,即打开对话框
Button (win, text="打开图像文件",command=createOpenFileDialog) .pack (anchor=CENTER)
#设置对话框打开的文件类型
myFileTypes = [ ('Graphics Interchange Format','*.gif') ,('Windows bi tmap''* .bmp'),
( 'JPEG format', '*.jpg') ,('Tag Image File Format', '*.tif') ,('All image files', '*.gif *.jpg * .bmp *. tif') ]
#创建一个[打开旧文件]对话框
myDialog = tkinter . filedialog. Open (win, filetypes=myFileTypes)
#开始程序循环
win . mainloop ()

保存并运行程序 demo.py,在打开的窗口中单击“打开图像文件”按钮,然后在弹出的对话框中选择需要查看的图像文件,即可查看图像的属性信息,结果如图 1 所示:

程序运行结果
图1:程序运行结果

优秀文章