Python:用带有alpha像素的颜色替换rgb颜色。批量转换400幅图像

Python:用带有alpha像素的颜色替换rgb颜色。批量转换400幅图像,python,image,colors,replace,Python,Image,Colors,Replace,如何在python中用另一种颜色替换多个图像中的颜色?我有一个包含400个精灵动画的文件夹。我想改变块彩色阴影(111,79,51)与一个有阿尔法透明度。我可以使用以下工具轻松完成批量转换: img = glob.glob(filepath\*.bmp) 但是我不知道如何改变像素的颜色。如果有什么区别的话,这些图像都是96x96,我不在乎这个过程需要多长时间。我使用的是python 3.2.2,所以我不能真正使用PIL(我认为)BMP是一种windows文件格式,所以您需要PIL或类似的格式;

如何在python中用另一种颜色替换多个图像中的颜色?我有一个包含400个精灵动画的文件夹。我想改变块彩色阴影(111,79,51)与一个有阿尔法透明度。我可以使用以下工具轻松完成批量转换:

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

但是我不知道如何改变像素的颜色。如果有什么区别的话,这些图像都是96x96,我不在乎这个过程需要多长时间。我使用的是python 3.2.2,所以我不能真正使用PIL(我认为)

BMP是一种windows文件格式,所以您需要PIL或类似的格式;或者你也可以使用自己的读写器。据我所知,基本模块不会有帮助。您可以使用Tk(PhotoImage())读取PPM和GIF,Tk是标准发行版的一部分,您可以在该图像上使用get()和put()来更改像素值。请参阅联机参考,因为它不是直接的-像素来自get()作为3元组整数,但需要返回put()作为空格分隔的十六进制文本

BMP是一种windows文件格式,因此您需要PIL或类似的格式;或者你也可以使用自己的读写器。据我所知,基本模块不会有帮助。您可以使用Tk(PhotoImage())读取PPM和GIF,Tk是标准发行版的一部分,您可以在该图像上使用get()和put()来更改像素值。请参阅联机参考,因为它不是直接的-像素来自get()作为3元组整数,但需要返回put()作为空格分隔的十六进制文本

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


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

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


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

您是否尝试过为Python 3.2编写非官方的PIL版本。如果它不起作用,我也会尝试一下opencv;)你考虑过使用ImageMagick吗?谢谢!我不知道3.2.2的非官方PIL,现在工作得很好!您是否尝试过Python3.2的非官方PIL构建。如果它不起作用,我也会尝试一下opencv;)你考虑过使用ImageMagick吗?谢谢!我不知道3.2.2的非官方PIL,现在工作得很好!