Преобразование изображения True Color в цвет палитры - PullRequest
2 голосов
/ 05 апреля 2011

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

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

Ответы [ 2 ]

0 голосов
/ 22 апреля 2011

Выезд FreeImage . Существует множество флагов сохранения , которые вы можете передать, где вы можете указать уровни сжатия. Есть также метод под названием ConvertColorDepth , который звучит многообещающе. Вам придется просмотреть лицензию, чтобы понять, подходит ли она вам.

0 голосов
/ 16 апреля 2011

Если вы сохраняете в формате .gif, он должен использовать 256 цветовую палитру изображения. Это может быть простым решением, если ваш клиент может читать файлы .gif. Leadtools может сохранять файлы в формате .tif, но не с открытым исходным кодом.

...