序列(image sequences,也叫動畫格式, animation formats)
pil 對序列有一些基礎的支援。支援 fli/flc, gip 和其他一些格式,tiff 檔案也可以包含多個幀。
import
image
im =
image.open(r
"c:/testimg/ani1.gif")
try:
while1:
im.seek(im.tell() +1
)#do something to im
print"x
"except
eoferror:
pass
用 iterator 類包裝後,我們可以用 for 語句來列舉每乙個幀:
class
imagesequence:
def__init__
(self, im):
self.im =im
def__getitem__
(self, ix):
try:
ifix:
self.im.seek(ix)
return
self.im
except
eoferror:
raise
indexerror
forframe
inimagesequence(im):
"test"
postscript printing
import
image
import
psdraw
im =
image.open(
"lena.ppm")
title ="
lena
"box =(
1*72, 2*
72, 7*
72, 10*
72)
#in points
ps =
psdraw.psdraw()
#預設是 sys.stdout
ps.begin_document(title)
#draw the image (75 dpi)
ps.image(box, im, 75)
#draw centered title
ps.setfont(
"helveticanarrow-bold",
36)w, h, b
=ps.textsize(title)
ps.text((4*
72-w/
2, 1*
72-h), title)
ps.end_document()
前面說過一般用 image.open(檔名) 的方法開啟,其實不一定要傳遞檔名,也可以是乙個實現了 read, seek, tell 方法的物件。該物件將被以二進位制模式開啟。
import
stringio
im =
image.open(stringio.stringio(buffer))
注意,pil 庫在讀取頭資訊時,會重新回到檔案開頭(用 seek(0) 方法)。在讀取資料時(load()) 也是如此。如果檔案比較大,比如在 tar 檔案中,可以用 containerio 或 tario 模組來訪問它。
例子:從 tar 壓縮包中讀取:
import
tario
fp =
tario.tario(
"imaging.tar",
"imaging/test/lena.ppm")
im =
image.open(fp)
控制解碼器
有些解碼器允許一邊從檔案中讀取,一邊操作。這通常用於在建立縮圖時加速解碼操作(速度比質量更重要),或者在向單色雷射印表機列印的時候(僅需要的灰度資訊)。
例子:用草稿(draft)模式讀取
im =image.open(file)
"original =
", im.mode, im.size
im.draft("l
", (
100,
100))
"draft =
", im.mode, im.size
這樣會輸出類似下面的結果:
origial
=rgb (
512,
512)
draft
=l (
128,
128)
注意,草稿模式開啟的結果不一定符合指定的模式和尺寸。如果要確保不大於指定尺寸,使用 thumbnail 方法。
python3無法安裝PIL
python3安裝pil的時候顯示無法找到相對應的版本 pil是python2的庫 pillow才能支援python3 關於pillow與pil pil python imaging library 是python乙個強大方便的影象處理庫,名氣也比較大。不過只支援到python 2.7。pillow...
cv2 PIL區別筆記
使用 scipy.misc.imread 讀取的資料是 rgb 格式 使用 cv2.imread 讀取的資料是 bgr 格式 使用 pil.image.open 讀取的資料是rgb格式 對於單通道的 可以看出image讀取就是預設的單通道,但是cv2會預設轉化圍為3通道,並且數值也變了。需要加上cv...
Python3安裝Pillow與PIL的方法
關於pillow與pil pil pytho程式設計客棧n imaging library 是python乙個強大方便的影象處理庫,名氣也比較大。不過只支援到python 2.7。pil官方 程式設計客棧pil pillow是pil的乙個派生分支,但如今已經發展成為比pil本身更具活力的影象處理庫。...