我想通过从给定的图像中删除前30行和最后30行的方式裁剪图像。 我已经搜索过了,但没有得到确切的解决方案。 有人有什么建议吗?
我想通过从给定的图像中删除前30行和最后30行的方式裁剪图像。 我已经搜索过了,但没有得到确切的解决方案。 有人有什么建议吗?
你需要导入PIL(Pillow)库。假设你有一个大小为1200x1600的图像,我们将从400x400的位置裁剪至800x800的位置。
from PIL import Image
img = Image.open("ImageName.jpg")
area = (400, 400, 800, 800)
cropped_img = img.crop(area)
cropped_img.show()
(左,上,右,下) 表示两个点,
对于一个800x600像素的图像,图像的左上角点是(0,0),右下角点是(800,600)。
因此,要将图像切成两半:
from PIL import Image
img = Image.open("ImageName.jpg")
img_left_area = (0, 0, 400, 600)
img_right_area = (400, 0, 800, 600)
img_left = img.crop(img_left_area)
img_right = img.crop(img_right_area)
img_left.show()
img_right.show()
Python Imaging Library使用笛卡尔像素坐标系,以左上角(0,0)为起点。请注意,坐标指的是暗示的像素角落;以(0, 0)为地址的像素中心实际上位于(0.5, 0.5)。
通常将坐标传递给库作为2元组(x, y)。矩形由4元组表示,首先给出左上角。例如,覆盖所有800x600像素图像的矩形写为(0, 0, 800, 600)。
更简单的方法是使用ImageOps中的crop。您可以输入要从每个侧面裁剪的像素数量。
from PIL import ImageOps
border = (0, 30, 0, 30) # left, top, right, bottom
ImageOps.crop(img, border)
参数:box - 作为 (左,上,右,下) 元组的裁剪矩形。
- Rishav