【问题标题】:How to crop an image using PIL?如何使用 PIL 裁剪图像?
【发布时间】:2012-04-16 12:24:09
【问题描述】:

我想通过从给定图像中删除前 30 行和后 30 行来裁剪图像。我已经搜索但没有得到确切的解决方案。有人有什么建议吗?

【问题讨论】:

    标签: python python-imaging-library crop


    【解决方案1】:

    有一个crop()方法:

    w, h = yourImage.size
    yourImage.crop((0, 30, w, h-30)).save(...)
    

    【讨论】:

    • 是的,我知道 im.crop(box) 用于裁剪图像。但是我只想裁剪图像的上下部分而不是左右,虽然 box() 需要 4 个元组,但我不知道如何裁剪图像的上下部分。
    • @TajKoyal:ninjagecko 向您展示的正是您如何裁剪顶部和底部。他正在为新图像指定一个矩形。您可以看到他在顶部和底部的 y 值上削减了 30 个像素。如果您以任何方式偏移 x 值,则会影响左侧和右侧。
    • 感谢大家帮助我。
    • 对于像我这样懒惰的人Parameters: box – The crop rectangle, as a (left, upper, right, lower)-tuple.
    【解决方案2】:

    您需要为此导入 PIL (Pillow)。 假设你有一个大小为 1200、1600 的图像。我们将图像从 400、400 裁剪到 800、800

    from PIL import Image
    img = Image.open("ImageName.jpg")
    area = (400, 400, 800, 800)
    cropped_img = img.crop(area)
    cropped_img.show()
    

    【讨论】:

      【解决方案3】:

      更简单的方法是使用来自ImageOps 的裁剪。您可以输入要从每一侧裁剪的像素数。

      from PIL import ImageOps
      
      border = (0, 30, 0, 30) # left, top, right, bottom
      ImageOps.crop(img, border)
      

      【讨论】:

        【解决方案4】:

        (left,upper,right,lower)表示两点,

        1. (左,上)
        2. (右下)

        对于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()
        

        Coordinate System

        Python 图像库使用笛卡尔像素坐标系,左上角为 (0,0)。请注意,坐标指的是隐含的像素角;被寻址为 (0, 0) 的像素的中心实际上位于 (0.5, 0.5)。

        坐标通常作为 2 元组 (x, y) 传递给库。矩形表示为 4 元组,首先给出左上角。例如,覆盖所有 800x600 像素图像的矩形写为 (0, 0, 800, 600)。

        【讨论】:

          猜你喜欢
          • 2018-12-11
          • 2019-03-26
          • 2012-10-01
          • 1970-01-01
          • 2013-03-06
          • 2012-12-22
          • 2017-01-18
          • 2011-09-21
          • 2011-02-25
          相关资源
          最近更新 更多