【发布时间】: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