【问题标题】:Python, PIL, crop problemPython,PIL,作物问题
【发布时间】:2023-03-28 11:40:01
【问题描述】:

似乎无法让裁剪正常工作,问题是,它裁剪了一个尺寸正确的区域,但总是从左上角 (0, 0),而不是从我传递的坐标。

image = Image.open(input)
region = image.crop((1000,400,2000,600)
region.save(output)

在 PIL 的 image.py 中,方法 _ImageCrop 我已经打印出来了..:

print x0, y0, x1, y1
self.__crop = x0, y0, x1, y1

值似乎是正确的。

输入是大小为 1600x2390 的 JPEG 图像。

Python 版本:2.5, PIL 版本:1.1.6

有什么建议吗?谢谢

【问题讨论】:

    标签: python python-imaging-library crop


    【解决方案1】:

    为我工作:Python 2.6.1、PIL 1.1.6、大小为 2020x1338 像素的 JPEG。

    您确定您的意思是 1600x2390 而不是 2390x1600 的 JPEG? (1000,400,2000,600) 框尺寸超出了 1600 宽图像的尺寸;如果我尝试这样做,我会在相交区域之外获得垃圾数据。

    【讨论】:

      【解决方案2】:

      接下来我会做:

      cover=Image.open(path_to_cover+"/shablon1.jpg")
      

      ....

      def generit_nomer_proekt(self,nomer):
          size_box=(160,40)
          font=ImageFont.truetype('/home/vintello/workspace/mpg_to_dvd/src/cover/ttf/aricyr.ttf',int(30))
          im = Image.new ( "RGB", size_box , "white" )
          draw = ImageDraw.Draw ( im )
          draw.text ( (20,0), unicode(nomer,"utf-8"), fill="#74716f", font=font )
          return im
      

      .....

      nazv_vert=self.generit_nomer_proekt(nomer)
      coo=nazv_vert.size
      left_x=1575
      left_y=383
      box_vert_nazv=(left_x,left_y,left_x+coo[0],left_y+coo[1])
      cover.paste(nazv_vert,box_vert_nazv)
      

      或者,如果您过去不使用 PNG:

      cover.paste(nazv_vert,box_vert_nazv,nazv_vert)
      

      【讨论】:

        猜你喜欢
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 2013-05-26
        • 1970-01-01
        • 2020-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多