【发布时间】:2014-01-29 21:34:11
【问题描述】:
我正在尝试拍摄两张彩色编码的 gif 图像并将它们组合成一张图像,以及我需要从头开始生成彩色 gif 图像的其他几种情况。我可以从一个 gif 图像复制到一个新的“P”图像,但颜色不会复制。我最终得到一张黑白/灰度图像,而不是我开始时图像的精确副本。我只是从头开始尝试,以确保在继续前进之前我已经完成了进程。到目前为止,我还没有完成这个过程。
from PIL import Image
filename = '/media/image1.gif'
im = Image.open(filename);
size = width, height = im.size
coordinates = x,y = width, height
img = Image.new('P',coordinates)
pixels = img.load()
for x in range(img.size[0]):
for y in range(img.size[1]):
coordinates = x,y
pixels[x,y]=im.getpixel(coordinates)
img.show()
我做错了什么来转移颜色?
【问题讨论】:
-
GIF 图像是索引颜色。您是否在寻找复制调色板的方法?
-
我认为我可能会迷失的地方是索引颜色概念。我以为颜色编号是 0-255。就像我最初所说的那样,我正在考虑去除单个像素的颜色,而不是将与显示的颜色相关的值相加,并用增加的值制作一个新图表。我认为复制调色板不会有什么不同吗?
-
颜色数字只是数字,不是 RGB 值。在这些数字和实际 RGB 颜色之间有一个映射,称为palette。他们说像
img.palette.getvalues()这样的东西应该给你调色板数据,你可能会以某种方式复制它,看看文档。 -
我一直在阅读过去的问题,这就是我的感觉。我绝对没有意识到颜色(RGB 值)不是固定值,而是由用户/程序员设置的。我学得很快。
-
我也知道获取调色板并不是什么大问题,但我没有看到任何显示你如何设置调色板的东西。您是否只是创建一个元组并将调色板放入一个元组中,然后引用该元组来选择颜色。我知道我刚才说的是什么,但如果我是对的,那又是另一回事了。今晚回家后,我将不得不考虑这个想法。我可能有点过头了。
标签: python python-imaging-library