我的问题是,使用imagemagick(或java库)仅使用从159色静态调色板中选择的15种颜色重新着色图像的最佳方法是什么。我会使用这15种颜色来创建15_color_palette.png并使用imagemagick convert的重映射功能来重新着色图像。
convert input.png +dither -remap 15_color_palette.png output.png
我尝试了几种不同的方法,但它们都不能很好地工作(至少我认为它们可以做得更好 - 我想有可能没有更好的方法)。
示例1:
convert input.png +dither -colors 15 work/15_color.png
convert work/15_color.png -unique-colors work/15_color_palette.png
convert work/15_color_palette.png -remap work/palette.png work/15_color_palette_converted.png
convert input.png +dither -remap work/15_color_palette_converted.png work/final.png
(这个从所有颜色中选择15种颜色,将其重新映射到159种调色板调色板中的15种颜色,然后使用这15种颜色重新着色原始图像。)
示例2:
convert +dither -remap work/palette.png work/remap.png
#use java to count top 15 colors used from the remap, recolor the original using those 15 colors
convert +dither -remap work/temp_palette.png work/final.png