Использование общей палитры для нескольких изображений требует тщательно созданной палитры.Если вы не будете особенно осторожны при использовании палитры одного изображения на многих изображениях, результат будет плохим.
Это не должно быть сложным.Если у вас есть доступ к GIMP (или другому инструменту), который поддерживает графику с истинным цветом, вы можете создать большое изображение и разместить в нем все меньшие изображения, затем квантовать изображение в N цветов, а затем использовать эту палитру в качестве источника.
вы должны быть в состоянии близко имитировать поведение GIMP в консоли, используя ImageMagick
Как только вы получите изображение с истинным цветом со всеми цветами, которые вы хотите квантовать,
# Create an 8-bit png from our source, with a 235-color palette as an example.
convert truecolor_source.png -colors 235 palette.png
# Create an 8-bit png from an arbitrary image and use the palette in palette.png
convert sample.png -map palette.png output.png
Существует несколько опций для цветов понижающей дискретизации, например dithering .См. пример страницы ImageMagickv6 для превосходного обзора с примерами изображений и кода.
Хотя я до сих пор не точно понимаю, что вы хотите сделать, в настоящее время вы наиболеенедавний комментарий (« Да, от RGB до палитры будет устанавливаться независимо. Нужно установить правильное количество цветов »), похоже, все, что вы хотите сделать, это установить строгое ограничение на количество цветов в группеизображений, но им не нужно использовать одинаковую палитру.
В этом случае решение очень простое:
convert sample.png -colors 135 output.png
Попробуйте поиграть спараметры квантования, если результат вас не устраивает.
Если выходное изображение слишком велико для вашего вкуса, вы можете поэкспериментировать с параметром -quality
.
Если это все еще не такt удовлетворительно, пожалуйста, попробуйте объяснить вашу цель более подробно.Удачи!