【问题标题】:coloring a jpg image using PIL使用 PIL 为 jpg 图像着色
【发布时间】:2014-11-22 16:13:21
【问题描述】:

我使用 PIL 和 Tkinter 编写了一个 python 代码,在其中显示图像并在用户单击的图像上放置一个 红色 圆圈。这是相关代码。

def paint_img(event, canvas):
    x, y = event.x, event.y
    image_draw.ellipse((x-10, y-10, x+10, y+10), fill='red')
    canvas._image_tk = ImageTk.PhotoImage(pilImg)
    canvas.itemconfigure(canvas._image_id, image=canvas._image_tk)

它似乎适用于某些图像,但在某些情况下它会显示一个灰色圆圈。我在测试图像上使用了identify,成功的输出是

totestcolor.jpg JPEG 561x549 561x549+0+0 8-bit DirectClass 18.3kb 

对于不成功的,输出为:

totestcolor1.jpg JPEG 1533x1095 1533x1095+0+0 8-bit PseudoClass 256c 70.4kb  

我想知道为什么会这样,以及是否有任何方法可以为不成功的图像输出一个红色圆圈。

【问题讨论】:

    标签: python image image-processing jpeg python-imaging-library


    【解决方案1】:

    那是因为原始图像是灰度的。您可以在绘制红色圆圈之前将其转换为全 RGB。在 PIL 库中,代码如下:

    pilImg = pilImg.convert("RGB")   # or "RGBA" to keep transparency
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多