【问题标题】:_tkinter.TclError: can't parse color "#158132ee"_tkinter.TclError:无法解析颜色“#158132ee”
【发布时间】:2013-08-06 16:20:09
【问题描述】:

我正在编写一个将图像转换为棕褐色调的函数,当我尝试运行它时收到此错误消息。最奇怪的是,当我在我关注的guide 中的 Python Web 解释器 activecode 中运行它时,它确实起作用了;它与我(没有)拥有的图像库有关吗?我正在使用从here 下载的 cImage,这本书提到了一个名为Pillow 的东西,但是当我阅读说明并看到 Mac OSX 安装步骤与我的其他所有步骤相比有多么复杂时,它真的让我大吃一惊。已经完成(当然,如果没有其他方法,我会忍受它并安装它)。请注意,我不确定该指南是否真的使用 Pillow,它只是推荐它。

功能:

def sepiatone(i,newi):
    for col in range(i.getWidth()):
        for row in range(i.getHeight()):
            p = i.getPixel(col,row)

            newred = (p.getRed()*0.393 + p.getGreen()*0.769 + p.getBlue()*0.189)
            newgreen = (p.getRed()*0.349 + p.getGreen()*0.686 + p.getBlue()*0.168)
            newblue = (p.getRed()*0.272 + p.getGreen()*0.534 + p.getBlue()*0.131)

            newred = int(newred)
            newgreen = int(newgreen)
            newblue = int(newblue)

            newpixel = image.Pixel(newred,newgreen,newblue)

            newi.setPixel(col,row,newpixel)

有什么帮助吗?

【问题讨论】:

  • #158132ee 有四个字节。看起来image.Pixel 正在给你一个 alpha 组件。 Tcl 只想要 RGB,而不想要 RGBA。考虑砍掉ee 以获得#158132。或者查看 image.Pixel 和 newi.setPixel 的文档,看看它们是采用 RGB 还是 RGBA。
  • 如果我可以或知道怎么做,我会这样做,但我认为它是从操作中获取颜色——我从来没有真正写过那个特定的值并将它分配给任何东西。我会阅读文档,看看是否有帮助。

标签: python python-3.x tkinter python-imaging-library


【解决方案1】:

对于有同样问题的人,你所要做的就是......

newpixel = image.Pixel(newred/2,newgreen/2,newblue/2)

这对我有用.. :)

【讨论】:

    猜你喜欢
    • 2017-12-30
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多