2017-04-19 64 views
0

gimp能夠從加載的圖像生成調色板。我期望所有圖像(我不一定是這些圖片的作者)共享一個共同的調色板,因爲這可以更容易地在LCD屏幕上顯示它們。將從多個jpgs生成通用調色板的圖形程序

有沒有這樣的程序?或者一些腳本在gimpimagemagick

+0

在GIMP,你會:1)加載所有JPEG格式爲層2)使用gimp_image_convert_indexed()來抖動他們全部3)可能導出調色板4)迭代/保存每個圖層。但是文件數量取決於可用內存,調色板最多爲256色,而LCD可以顯示超過256色? – xenoid

回答

1

有幾個方式做到這一點:

  1. 使用抖動

    調色板專爲像抖動默認VGAWEB調色板。我不喜歡這樣寫道:

    如何做到這一點。也有這個在那裏只是谷歌的抖動更復雜的方法...

  2. 合併到您想要使用的工具單鑲嵌

    ,並計算調色板包含這個大圖像所有影像圖像,你現在使用。之後,使用這個調色板爲每個原始圖像(或馬賽克,然後去馬賽克)。

  3. 計算調色板自己

    你需要計算所有圖像的直方圖,然後使用某種類型的集羣,以降低顏色的數目。爲了包含更多的圖像,只需爲所有圖像計算直方圖(不要在圖像間重置),其餘部分與單張圖像相同。因此,如果您可以訪問您的顏色量化代碼,那麼只需更改直方圖部分...通過在所有想要的圖像中添加循環(並僅爲第一個圖像清除直方圖)。我該怎麼辦彩色量化

    這裏例如:

我不使用GIMP也不ImageMagick的,所以我不能幫你那裏,但現在你至少知道在他們的文檔中尋找什麼...

1

我不確定你想要做什麼適用於JPEG圖像,因爲它們沒有調色板。然而,在命令行中使用ImageMagick的一種可能技術是將所有圖像放在一起,將顏色數量減少到任何你想要的數量,然後將其保存爲(最小化/去除重複的)作爲「調色板」其中您可以應用於其他圖像。

所以,第一步是提取一個通用調色板,都說250種顏色:

magick image1.jpg image2.jpg ... +append -colors 250 -unique-colors palette.png 

現在,你顯示任何圖像之前,將其映射到調色板:

magick image.jpg -remap palette.png result.png 

你也可以禁用抖動,與:

magick +dither image.jpg -remap palette.png result.png 

我已經使用PNG而不是JPEG始終是我的問題與JPEG調色板的原因,但你可以嘗試與您的JPEG使用相同的命令。我肯定會建議您至少使用GIF,PNG或NetPBM PPM格式來存儲調色板信息。


只是爲了好玩,讓我們嘗試與白宮的一個畫面:

enter image description here

讓我們做的三種顏色真是可憐的調色板 - 紅色,黃色和青色:

convert xc:red xc:yellow xc:cyan +append palette.png 

enter image description here

和應用它與抖動:

convert whitehouse.jpg -remap palette.png dither.png 

enter image description here

,並再次無:

convert whitehouse.jpg +dither -remap palette.png undither.png 

enter image description here

由於@Spektre在下面的評論所指出的,你可能會傳遞一個調色板到某些BYTE陣列中的LCD或類似查詢表的東西。如果是這樣的話,你可以看到像這樣的人/ ASCII方面的調色板:

convert palette.png txt: 

# ImageMagick pixel enumeration: 3,1,65535,srgb 
0,0: (65535,0,0) #FF0000 red 
1,0: (65535,65535,0) #FFFF00 yellow 
2,0: (0,65535,65535) #00FFFF cyan 

而且你可以在這樣二元獲得R,G & B值的9個字節的文件 - 我選擇拋售它在十六進制後,所以你可以看到它:

convert palette.png -depth 8 rgb:palette.bin 

xd palette.bin 
00000000: ff00 00ff ff00 00ff ff     ......... 
+0

輸出最有可能不是JPG格式,而是一些帶有一些索引顏色格式LCD的BYTE陣列,但是如果他需要存儲子結果JPG無疑是正確的。除非液晶顯示器自己做轉換,但不是很好,轉換成通用顏色有更好的視覺質量... – Spektre

+0

@Spektre感謝您的見解 - 我不是很熟悉液晶顯示器,所以我會添加更多的信息,可能會現在你已經解釋了BYTE數組。再次感謝。 –

+1

我只是猜測在這裏,但我有低水平的硬件背景液晶顯示器的包括,所以這是一個受過教育的猜測... – Spektre