是否有可能在Python中將256色gif圖像重新映射爲128色或64色gif圖像?更改.gif圖像中每個像素的顏色數量?
我想它使用的ImageIO庫
import imageio
def myfunction(inputgif, outputgif, duration):
gifimage = imageio.mimread(inputgif)
for i in range(len(gifimage)):
gifimage[i] = gifimage[i]/4
with imageio.get_writer(outputgif, mode='I', duration=duration) as writer:
for x in range(len(gifimage)):
writer.append_data(gifimage[x])
writer.close()
它的工作,但是,問題是圖像文件仍然認爲「他的宇宙」是色256個可能的值(從0到255) ,而不是從0到64(因爲我把所有的值除以4)。這使圖像變得更暗,而不是使用64(4位)可能的顏色。
我的目標是通過減少顏色數量來獲得有損數據壓縮。
你知道嗎,一種理智的方法將使用某種向量量化(優化保留的顏色)和自定義顏色調色板(僅使用以前計算的顏色)?這與你的代碼非常不同!我不知道你用什麼方法期待什麼(它在一些空間中進行線性顏色轉換;根據你的期望遠離有損耗)。可能有許多庫正在做這件事,但是用python自己實現這一切可能是一些工作。 – sascha
@sascha謝謝。你能給我一些關於我可以使用的圖書館的例子嗎? – Madno
那麼,最流行的一個(在開源世界):[ImageMagick](http://www.imagemagick.org/Usage/quantize/)。 – sascha