Python 如何使用PIL裁剪图像?
我想通过从给定图像中删除前30行和后30行来裁剪图像。我已经搜索过了,但没有得到确切的答案。有人有什么建议吗?有一种方法: 为此,您需要进口PIL(枕头)。 假设您有一个大小为1200、1600的图像。我们将从400400裁剪图像到800800Python 如何使用PIL裁剪图像?,python,python-imaging-library,crop,Python,Python Imaging Library,Crop,我想通过从给定图像中删除前30行和后30行来裁剪图像。我已经搜索过了,但没有得到确切的答案。有人有什么建议吗?有一种方法: 为此,您需要进口PIL(枕头)。 假设您有一个大小为1200、1600的图像。我们将从400400裁剪图像到800800 from PIL import Image img = Image.open("ImageName.jpg") area = (400, 400, 800, 800) cropped_img = img.crop(area) cropped_img.sh
from PIL import Image
img = Image.open("ImageName.jpg")
area = (400, 400, 800, 800)
cropped_img = img.crop(area)
cropped_img.show()
一种更简单的方法是使用crop from。您可以输入要从每一侧裁剪的像素数
from PIL import ImageOps
border = (0, 30, 0, 30) # left, top, right, bottom
ImageOps.crop(img, border)
(左、上、右、下)表示两点
从PIL导入图像
img=Image.open(“ImageName.jpg”)
img_左_面积=(0,0,400,600)
img_右_面积=(400,0,800,600)
img_left=img.裁剪(img_left_区域)
img_right=img.裁剪(img_right_区域)
img_left.show()
img_right.show()
Python图像库使用笛卡尔像素坐标系,左上角为(0,0)。注意,坐标是指隐含的像素角点;被称为(0,0)的像素的中心实际上位于(0.5,0.5)
坐标通常以2元组(x,y)的形式传递给库。矩形表示为4元组,首先给出左上角。例如,覆盖所有800x600像素图像的矩形写为(0,0,800,600)。是的,我知道im.crop(box)用于裁剪图像。但是我只想裁剪图像的上部和下部,而不是左侧和右侧,虽然box()需要4个元组,但我不知道如何裁剪图像的上部和下部。@TajKoyal:ninjagecko向您展示的正是如何裁剪顶部和底部。他正在为新图像指定一个矩形。您可以看到,他从顶部和底部的y值中删除了30个像素。如果以任何方式偏移x值,都会影响左右两侧。感谢大家的帮助。对于像我这样懒惰的人,
Parameters:box–裁剪矩形,作为(左、上、右、下)元组。
from PIL import ImageOps
border = (0, 30, 0, 30) # left, top, right, bottom
ImageOps.crop(img, border)