Python 圖片貼上 paste

本篇 ShengYu 將介紹如何使用 Python 讀取圖片並且將圖片貼在另一張圖片上,在做影像處理時有時會需要對圖片作剪下貼上的處理,接下來介紹怎麼使用 python 的 PIL 模組來作圖片貼上。

安裝 PIL

基本上新版本的 Python 應該都有內建 PIL,如果還未安裝 PIL 的話請參考這篇

範例1:把 lena 的縮圖貼在 lena 圖片上

以下範例 ShengYu 是使用 Image.open() 讀取 lena.jpg 這張圖片,
Image.open() 會回傳一個 Image 物件,
然後我們使用先前介紹過的圖片縮圖,把它讀取進來,
接著來到本篇的重點使用 paste() 將縮圖貼在 (150, 50) 的位置上,
最後使用 show() 將這張圖片顯示出來,就可以看到結果囉!

paste-image.py
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from PIL import Image

img = Image.open("lena.jpg")
print(img.size)
img2 = Image.open("lena-thumbnail.jpg")
print(img2.size)

img.paste(img2, (150, 50))
img.show()

結果如下圖所示:

範例2:把 crop 下的範圍貼在 lena 圖片上

這範例先使用 crop 裁剪一個範圍,
接著使用 paste() 將 crop 的範圍貼在 (150, 50) 的位置上,
最後使用 show() 將這張圖片顯示出來,就可以看到結果囉!

crop-paste-image.py
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from PIL import Image

img = Image.open("lena.jpg")
print(img.size)

img2 = img.crop((0, 0, 300, 300))
img.paste(img2, (150, 50))
img.show()

結果如下圖所示:

範例3:把 crop 下的範圍作模糊化再貼在 lena 圖片上

這範例先使用 crop() 裁剪一個範圍,
然後使用先前介紹過的模糊化 filter() 將範圍模糊化,
接著使用 paste() 將 crop 的範圍貼在 (150, 50) 的位置上,
最後使用 show() 將這張圖片顯示出來,就可以看到結果囉!

crop-filter-paste-image.py
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from PIL import Image, ImageFilter

img = Image.open("lena.jpg")
print(img.size)

img2 = img.crop((0, 0, 300, 300))
img3 = img2.filter(ImageFilter.BLUR)
img.paste(img3, (150, 50))
img.show()

結果如下圖所示:

Image.paste 參數的詳細細節請參考這裡

相關主題
Python 旋轉圖片 rotate
Python 縮放圖片 resize
Python 裁切裁剪圖片 crop
Python 圖片模糊化 blur
Python 在圖片上繪製文字