gimp能夠從加載的圖像生成調色板。我期望所有圖像(我不一定是這些圖片的作者)共享一個共同的調色板,因爲這可以更容易地在LCD屏幕上顯示它們。將從多個jpgs生成通用調色板的圖形程序
有沒有這樣的程序?或者一些腳本在gimp或imagemagick?
gimp能夠從加載的圖像生成調色板。我期望所有圖像(我不一定是這些圖片的作者)共享一個共同的調色板,因爲這可以更容易地在LCD屏幕上顯示它們。將從多個jpgs生成通用調色板的圖形程序
有沒有這樣的程序?或者一些腳本在gimp或imagemagick?
有幾個方式做到這一點:
使用抖動
調色板專爲像抖動默認VGA或WEB調色板。我不喜歡這樣寫道:
如何做到這一點。也有這個在那裏只是谷歌的抖動更復雜的方法...
合併到您想要使用的工具單鑲嵌
,並計算調色板包含這個大圖像所有影像圖像,你現在使用。之後,使用這個調色板爲每個原始圖像(或馬賽克,然後去馬賽克)。
計算調色板自己
你需要計算所有圖像的直方圖,然後使用某種類型的集羣,以降低顏色的數目。爲了包含更多的圖像,只需爲所有圖像計算直方圖(不要在圖像間重置),其餘部分與單張圖像相同。因此,如果您可以訪問您的顏色量化代碼,那麼只需更改直方圖部分...通過在所有想要的圖像中添加循環(並僅爲第一個圖像清除直方圖)。我該怎麼辦彩色量化
這裏例如:
我不使用GIMP也不ImageMagick的,所以我不能幫你那裏,但現在你至少知道在他們的文檔中尋找什麼...
我不確定你想要做什麼適用於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格式來存儲調色板信息。
只是爲了好玩,讓我們嘗試與白宮的一個畫面:
讓我們做的三種顏色真是可憐的調色板 - 紅色,黃色和青色:
convert xc:red xc:yellow xc:cyan +append palette.png
和應用它與抖動:
convert whitehouse.jpg -remap palette.png dither.png
,並再次無:
convert whitehouse.jpg +dither -remap palette.png undither.png
由於@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 .........
在GIMP,你會:1)加載所有JPEG格式爲層2)使用gimp_image_convert_indexed()來抖動他們全部3)可能導出調色板4)迭代/保存每個圖層。但是文件數量取決於可用內存,調色板最多爲256色,而LCD可以顯示超過256色? – xenoid