У нас есть приложение .NET, которое в настоящее время создает документы в файлы TIFF путем печати на виртуальном принтере. Мы хотели бы избавиться от виртуального принтера, потому что он дорогой, медленный и не поддерживает 64-разрядные операционные системы. Прямо сейчас я могу использовать другие имеющиеся в моем распоряжении инструменты для создания изображения TIFF, скажем, из документа Word с разрешением 300 точек на дюйм. Тем не менее, я не имею большого контроля над окончательным форматом TIFF; в частности, он создает полные 24-битные изображения с истинным цветом и, следовательно, очень большие файлы TIFF. Устаревшее решение, несмотря на все его недостатки, создает прекрасные 8-битные палитры цветных TIFF-файлов.
Итак, мой вопрос заключается в следующем: существует ли простой и эффективный способ преобразования 24-битного, полноцветного изображения в 8-битное цветное изображение палитры? Было бы неплохо, если бы полученная палитра была оптимизирована для конкретного изображения, но я понимаю, что анализ каждого пикселя, вероятно, слишком медленный. Решение, которое использует стандартную 8-битную палитру, безусловно, будет приемлемым. Есть ли в библиотеке изображений .NET метод, который это сделает, или сторонний инструмент с открытым исходным кодом? Я немного повозился с ImageMagick.NET, но был не очень доволен опытом.