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

2022-08-29 15:38 更新

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


圖像裁剪操作

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

crop(box=None)

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

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

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

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 的圖像。


圖像拷貝和粘貼

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

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

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

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

下面復(fù)制一張?jiān)瓐D像的副本,對(duì)副本進(jìn)行裁剪、粘貼操作,代碼如下所示:

im = Image.open("C../w3cschool.png")
#復(fù)制一張圖片副本
im_copy=im.copy()
#對(duì)副本進(jìn)行裁剪
im_crop = im_copy.crop((0,0,200,100))
#創(chuàng)建一個(gè)新的圖像作為蒙版,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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)