PIL.Image.open(fp, mode='r')
? 打開并標識給定的圖像文件。這是一個懶惰的操作;此函數標識文件,但文件保持打開狀態(tài),并且在嘗試處理數據(或調用 ?load()
?方法)。見 ?new()
? 。請參閱Pillow 中的文件處理。
fp – 文件名(字符串)、?pathlib.Path
?對象或文件對象。文件對象必須實現file.read
、 file.seek
和file.tell
方法,并以二進制模式打開。
模式- 模式。如果給出,這個參數必須是“r”。
格式- 嘗試加載文件的格式列表或元組。這可用于限制檢查的格式集。通過None
以嘗試所有支持的格式。您可以通過運行?python3 -m PIL
?或使用?PIL.features.pilinfo()
?函數來打印可用格式集。
一個Image
對象。
?FileNotFoundError
?– 如果找不到文件。
?PIL.UnidentifiedImageError
? – 如果無法打開和識別圖像。
?ValueError
? – 如果mode
不是“r”,或者StringIO
實例用于fp
.
?TypeError
?– 如果formats
不是None
,則為列表或元組。
為了防止“解壓炸彈”(即解壓成大量數據的惡意文件,旨在通過使用大量內存而崩潰或造成中斷)引起的潛在 DOS 攻擊,如果像素數在圖像中超過某個限制,Pillow 將發(fā)出一個?DecompressionBombWarning
? ,?PIL.Image.MAX_IMAGE_PIXELS
?。
這個閾值可以通過設置?PIL.Image.MAX_IMAGE_PIXELS
?來改變。也可以通過設置?Image.MAX_IMAGE_PIXELS = None
?禁用它。
如果需要,可以使用 將警告轉換為帶有?warnings.simplefilter('error', Image.DecompressionBombWarning)
?的錯誤或使用 ? ?warnings.simplefilter('ignore', Image.DecompressionBombWarning)?
?完全抑制 。另請參閱 日志記錄文檔以將警告輸出到日志記錄工具而不是使用 stderr。
如果像素數大于兩倍?PIL.Image.MAX_IMAGE_PIXELS
?,則DecompressionBombError
?將被提升。
PIL.Image.
alpha_composite
(im1, im2)
?IM1上的Alpha復合IM2。
im1 -- 第一張圖片。必須具有模式RGBA。
im2 -- 第二張圖片。必須具有模式RGBA,并且大小與第一個圖像相同。
一個 Image
對象。
PIL.Image.
blend
(im1, im2, alpha)
?通過使用常量alpha在兩個輸入圖像之間插入來創(chuàng)建新圖像。:
out = image1 * (1.0 - alpha) + image2 * alpha
im1 -- 第一張圖片。
im2 -- 第二張圖片。必須與第一個圖像具有相同的模式和大小。
alpha -- 插值α因子。如果alpha為0.0,則返回第一個圖像的副本。如果alpha為1.0,則返回第二個圖像的副本。alpha值沒有限制。如有必要,將結果裁剪到允許的輸出范圍內。
一個Image
對象。
PIL.Image.
composite
(image1, image2, mask)
?通過使用透明蒙版混合圖像來創(chuàng)建合成圖像。
image1 -- 第一張圖片。
image2 -- 第二張圖片。必須與第一個圖像具有相同的模式和大小。
mask -- 掩模圖像。此圖像可以具有模式“1”、“l(fā)”或“RGBA”,并且必須與其他兩個圖像具有相同的大小。
PIL.Image.
eval
(image, *args)
?對給定圖像中的每個像素應用函數(應采用一個參數)。如果圖像有多個波段,則對每個波段應用相同的功能。請注意,該函數對每個可能的像素值進行一次評估,因此不能使用隨機組件或其他生成器。
image -- 輸入圖像。
function -- 一個函數對象,采用一個整型參數。
一個 Image
對象。
PIL.Image.
merge
(mode, bands)
?將一組單波段圖像合并為新的多波段圖像。
mode -- 用于輸出圖像的模式。見: 模式 。
bands -- 包含輸出圖像中每個波段一個單波段圖像的序列。所有帶區(qū)的大小必須相同。
一個 Image
對象。
PIL.Image.
new
(mode, size, color=0)
?創(chuàng)建具有給定模式和大小的新圖像。
mode -- 用于新圖像的模式。見: 模式
size -- 以像素為單位包含(寬度、高度)的2元組。
color -- 圖像要使用什么顏色。默認為黑色。如果給定,對于單波段模式,這應該是一個整數或浮點值,對于多波段模式,這應該是一個元組(每個波段一個值)。創(chuàng)建RGB圖像時,還可以使用ImageColor模塊支持的顏色字符串。如果顏色為“無”,則圖像不會初始化。
一個 Image
對象。
PIL.Image.
fromarray
(obj, mode=None)
?從導出數組接口的對象(使用緩沖區(qū)協議)創(chuàng)建圖像內存。
如果 obj 不是連續(xù)的,則調用?tobytes
?方法并使用 frombuffer()
。
如果你有一張NumPy的圖片:
from PIL import Image
import numpy as np
im = Image.open('hopper.jpg')
a = np.asarray(im)
然后可以將其轉換為Pillow圖像:
im = Image.fromarray(a)
obj -- 帶數組接口的對象
mode -- 要使用的模式(如果沒有將由類型決定)見: 模式 。
一個?Image
?對象。
1.1.6 新版功能。
PIL.Image.
frombytes
(mode, size, data, decoder_name='raw', *args)
?從緩沖區(qū)中的像素數據創(chuàng)建圖像內存的副本。
最簡單的形式是,這個函數接受三個參數(模式、大小和未壓縮的像素數據)。
您還可以使用PIL支持的任何像素解碼器。有關可用解碼器的詳細信息,請參閱部分 編寫你自己的文件解碼器。
請注意,此函數只解碼像素數據,而不是整個圖像。如果在字符串中包含整個圖像,請將其包裝為 BytesIO
對象中,然后使用open()
來加載它。
mode -- 圖像模式。見: 模式 。
size -- 圖像大小。
data -- 包含給定模式的原始數據的字節(jié)緩沖區(qū)。
decoder_name -- 使用什么解碼器。
args -- 給定解碼器的其他參數。
一個 Image
對象。
PIL.Image.
frombuffer
(mode, size, data, decoder_name='raw', *args)
?在字節(jié)緩沖區(qū)中創(chuàng)建引用像素數據的圖像內存。
此功能類似于 frombytes()
,但盡可能使用字節(jié)緩沖區(qū)中的數據。這意味著對原始緩沖區(qū)對象的更改將反映在此圖像中)。并非所有模式都可以共享內存;支持的模式包括“l(fā)”、“rgbx”、“rgba”和“cmyk”。
請注意,此函數只解碼像素數據,而不是整個圖像。如果您有一個字符串中的整個圖像文件, ?請將其包裝在一個BytesIO
? 對象中,然后使用 open()
來加載它。
在當前版本中,用于“原始”解碼器的默認參數與用于 frombytes()
。這是一個bug,可能會在將來的版本中修復。如果執(zhí)行此操作,當前版本將發(fā)出警告;要禁用該警告,應提供完整的參數集。詳情見下文。
mode -- 圖像模式。見: 模式 。
size -- 圖像大小。
data -- 包含給定模式的原始數據的字節(jié)或其他緩沖區(qū)對象。
decoder_name -- 使用什么解碼器。
args -- 給定解碼器的其他參數。對于默認編碼器(“raw”),建議您提供完整的參數集:
frombuffer(mode, size, data, "raw", mode, 0, 1)
一個Image
對象。
1.1.4 新版功能。
PIL.Image.
effect_mandelbrot
(size, extent, quality)
?生成覆蓋給定范圍的Mandelbrot集。
size -- 以像素為單位的請求大小,作為2元組:(寬度、高度)。
extent -- 要覆蓋的范圍,作為4元組:(x0,y0,x1,y2)。
quality -- 質量。
PIL.Image.
effect_noise
(size, sigma)
?生成以128為中心的高斯噪聲。
size -- 以像素為單位的請求大小,作為2元組:(寬度、高度)。
sigma -- 噪聲標準差。
這些函數供插件作者使用。應用程序作者可以忽略它們。
PIL.Image.
register_open
(id, factory, accept=None)
?注冊圖像文件插件。應用程序代碼中不應使用此函數。
id -- 圖像格式標識符。
factory -- 圖像文件工廠方法。
accept -- 一種可選功能,可用于快速拒絕具有其他格式的圖像。
PIL.Image.
register_mime
(id, mimetype)
?注冊圖像MINE類型。應用程序代碼中不應使用此函數。
id -- 圖像格式標識符。
mimetype -- 此格式的圖像mime類型。
PIL.Image.
register_save
(id, driver)
?注冊圖像保存功能。應用程序代碼中不應使用此函數。
id -- 圖像格式標識符。
driver -- 以這種格式保存圖像的函數。
PIL.Image.
register_save_all
(id, driver)
?注冊一個圖像函數來保存多幀格式的所有幀。應用程序代碼中不應使用此函數。
id -- 圖像格式標識符。
driver -- 以這種格式保存圖像的函數。
PIL.Image.
register_extension
(id, extension)
?注冊圖像擴展名。應用程序代碼中不應使用此函數。
id -- 圖像格式標識符。
extension -- 用于此格式的擴展名。
PIL.Image.
register_extensions
(id, extensions)
?注冊映像擴展名。應用程序代碼中不應使用此函數。
id -- 圖像格式標識符。
extensions -- 用于此格式的擴展名列表。
PIL.Image.
register_decoder
(name, decoder)
?注冊圖像解碼器。應用程序代碼中不應使用此函數。
name -- 解碼器的名稱
decoder -- 返回?imagefile.pydecoder
?對象的可調用(模式,參數)
4.1.0 新版功能。
PIL.Image.
register_encoder
(name, encoder)
?注冊圖像編碼器。應用程序代碼中不應使用此函數。
name -- 編碼器的名稱
encoder -- 返回?imagefile.pyencoder
?對象的可調用(模式,參數)
4.1.0 新版功能。
更多建議: