Python Pillow 简明教程

Python Pillow - Cutting and Pasting Images

Cutting Images

Pillow(Python Imaging Library)允许我们从图像中提取一个矩形区域。图像的提取区域也称为图像中的包围框。在 Image 模块的 crop() 方法中创建了一张新图像,代表原始图像的指定区域。此方法允许我们指定要裁剪区域的包围框的坐标。

以下是 Pillow 中 "crop()" 方法的语法和用法 −

Image.crop(box)

其中,

  1. box − 这是指定要提取的矩形区域的一个元组。box 参数应为一个四元素元组:(左、上、右、下)。

Example

在这个示例中,我们使用 Image 模块的 crop() 方法按我们的要求裁剪矩形部分。

from PIL import Image

#Open the image
image = Image.open("Images/book.jpg")

#Define the bounding box for cropping
box = (100, 100, 200, 200)
#(left, upper, right, lower)

#Crop the image using the defined bounding box
cropped_image = image.crop(box)

#Save or display the cropped image
cropped_image.save("output Image/cropped_image.jpg")
cropped_image.show()
book
cropped image

Example

以下是使用 crop() 方法裁剪图像矩形部分的另一个示例。

from PIL import Image

#Open the image
image = Image.open("Images/rose.jpg")

#Define the bounding box for cropping
box = (10, 10, 200, 200)
#(left, upper, right, lower)

#Crop the image using the defined bounding box
cropped_image = image.crop(box)

#Save or display the cropped image
cropped_image.save("output Image/cropped_image.jpg")
cropped_image.show()
flower
cropped image2

Pasting Images

使用 Python Pillow 粘贴图像允许我们从一张图像中提取感兴趣的区域并将其粘贴到另一张图像上。此过程对图像裁剪、对象提取和合成等任务很有用。

Pillow(Python Imaging Library)中的 paste() 方法允许我们按指定位置将一张图像粘贴到另一张图像上。它是一种常用的图像合成方法,用于添加水印或将一张图像叠加到另一张图像之上。

以下是 paste() 函数的语法和参数 −

PIL.Image.paste(im, box, mask=None)
  1. im − 这是源图像,即我们要粘贴到当前图像上的图像。

  2. box − 此参数指定我们想要粘贴源图像的位置。它可以是坐标元组 "(左、上、右、下)"。源图像将粘贴在这些坐标定义的包围框内。

  3. mask (optional) − 如果提供了此参数,则它可以是一张定义透明蒙版的图像。粘贴的图像将根据蒙版图像中的透明度值进行蒙版处理。

Example

以下是如何使用 paste() 方法将一张图像粘贴到另一张图像上的示例。

from PIL import Image

#Open the background image
background = Image.open("Images/bw.png")

#Open the image to be pasted
image_to_paste = Image.open("Images/tutorialspoint.png")

#Define the position where the image should be pasted
position = (100, 100)

#Paste the image onto the background
background.paste(image_to_paste, position)

#Save the modified image
background.save("OutputImages/paste1.jpg")
background.show()
black white
tp logo
paste1