Во-первых, я бы посоветовал не слишком беспокоиться и сохранить как 24-битный png. Может показаться, что изображение становится намного больше при этом, но если миниатюры маленькие, вы, вероятно, обнаружите, что в настоящее время используется большая полоса пропускания только с заголовками http, которые исчезнут, и вы можете использовать их для сделать ваши изображения лучше.
Однако, если вы хотите автоматизировать процесс, вы можете попробовать определить средний цвет (один из способов сделать что-то похожее на это - изменить их размер до 1x1, а затем посмотреть на цвет rgb для этого пикселя). Как только у вас будет цвет для изображений, конвертируйте в hsv и сортируйте по оттенку. Затем вы можете связать их в соответствии с этим порядком сортировки. Я на самом деле не пробовал это, но это может привести к приемлемым результатам.
Регулировка количества объединяемых изображений также повлияет на качество вывода. Если это плохо, когда вы помещаете 30 изображений в файл, попробуйте 25 и посмотрите, какая разница. На самом деле, может быть разумнее думать о количестве файлов ...
- Поместите их все в один файл.
- Плохо выглядит, потому что не хватает цветов?
- добавить один дополнительный файл и распределить его поровну по всем файлам. Перейти к шагу 2.