2012-05-21 63 views
1

如何在python中将多个图像替换为另一种颜色?我有一个包含400个精灵动画的文件夹。我想改变块有色阴影(111,79,51)与一个具有alpha透明度。我可以很容易地使用批量转换:Python:用alpha像素替换rgb颜色。批量转换400张图像

img = glob.glob(filepath\*.bmp) 

但是我不知道如何改变像素颜色。如果它有所不同,图像都是96x96,我不在乎这个过程多长时间。我使用Python 3.2.2所以我真的不能使用PIL(我认为)

+0

你有没有尝试Python 3.2的非官方PIL构建? http://www.lfd.uci.edu/~gohlke/pythonlibs/。如果它不起作用,我也会给opencv一个镜头;) – jlengrand

+1

你有没有考虑过使用ImageMagick? –

+0

谢谢!我不知道关于3.2.2的非官方PIL,现在非常棒! – JamesWat

回答

0

BMP是一种Windows文件格式,所以你需要PIL或类似的东西;或者你可以推出你自己的读写器。据我所知,基本模块无济于事。您可以使用属于标准分布的Tk(PhotoImage())读取PPM和GIF,并在该图像上使用get()和put()来更改像素值。在线查看参考文献,因为它不是直接的 - 像素来自get()作为3元组整数,但需要返回put()作为空格分隔的十六进制文本!

0

您的图像是否处于索引模式(带有调色板的每像素8位)或“真彩色”32bpp图像?如果它们处于索引模式,那么简单地将该颜色的调色板条目标记为在所有文件中都是透明的并不困难。

否则,你将不得不处理所有的像素数据。它也可以通过为GIMP写一个Python脚本来完成 - 但是这需要Python-2。