pillow 圖像裁剪、復(fù)制、粘貼操作

2022-08-29 15:38 更新

圖像的剪裁、復(fù)制、粘貼是圖像處理過程中經(jīng)常使用的基本操作,Pillow Image 類提供了簡單、易用的 API 接口,能夠幫助您快速實現(xiàn)這些簡單的圖像處理操作。


圖像裁剪操作

Image 類提供的 ?crop()? 函數(shù)允許我們以矩形區(qū)域的方式對原圖像進行裁剪,函數(shù)的語法格式如下:

crop(box=None)

box:表示裁剪區(qū)域,默認為 None,表示拷貝原圖像。

注意:box 是一個有四個數(shù)字的元組參數(shù) (x_左上,y_左下,x1_右上,y1_右下),分別表示被裁剪矩形區(qū)域的左上角 x、y 坐標和右下角 x,y 坐標。默認 (0,0) 表示坐標原點,寬度的方向為 x 軸,高度的方向為 y 軸,每個像素點代表一個單位。

?crop()? 函數(shù)會返回一個 Image 對象,使用示例如下:

from PIL import Image
"""
裁剪圖像
"""
im = Image.open("../w3cschool.png")
box =(0,0,110,100)
im_crop = im.crop(box)
im_crop.show()

輸出圖像顯示如下:


圖1:圖像裁剪

最終,在原圖的基礎(chǔ)上裁剪出一張像素為 110 * 100 的圖像。


圖像拷貝和粘貼

拷貝、粘貼操作幾乎是成對出現(xiàn)的,Image 類提供了 ?copy()? 和 ?paste()? 方法來實現(xiàn)圖像的復(fù)制和粘貼。其中復(fù)制操作(即 ?copy() ?方法)比較簡單,下面主要介紹? paste()? 粘貼方法,語法格式如下所示:

paste(image, box=None, mask=None)

該函數(shù)的作用是將一張圖片粘貼至另一張圖片中。注意,粘貼后的圖片模式將自動保持一致,不需要進行額外的轉(zhuǎn)換。參數(shù)說明如下:

  • image:指被粘貼的圖片;
  • box:指定圖片被粘貼的位置或者區(qū)域,其參數(shù)值是長度為 2 或者 4 的元組序列,長度為 2 時,表示具體的某一點 (x,y);長度為 4 則表示圖片粘貼的區(qū)域,此時區(qū)域的大小必須要和被粘貼的圖像大小保持一致。
  • mask:可選參數(shù),為圖片添加蒙版效果。

下面復(fù)制一張原圖像的副本,對副本進行裁剪、粘貼操作,代碼如下所示:

im = Image.open("C../w3cschool.png")
#復(fù)制一張圖片副本
im_copy=im.copy()
#對副本進行裁剪
im_crop = im_copy.crop((0,0,200,100))
#創(chuàng)建一個新的圖像作為蒙版,L模式,單顏色值
image_new = Image.new('L', (200, 100), 200)
#將裁剪后的副本粘貼至副本圖像上,并添加蒙版
im_copy.paste(im_crop,(100,100,300,200),mask=image_new)
#顯示粘貼后的圖像
im_copy.show()

輸出的顯示結(jié)果,如下所示:


圖2:圖像復(fù)制粘貼


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號