C # конвертировать растровое изображение в индексированный цветовой формат - PullRequest
2 голосов
/ 26 января 2012

Как я могу преобразовать 24-битный цвет System.Drawing.Bitmap в индексированный (256-цветный) формат?У меня возникают проблемы при разработке, как рассчитать палитру.Я могу перебирать пиксели и использовать int[] для хранения различных цветов, но проблема возникает, когда существует более 256 цветов.Есть ли способ преобразовать в индексированный формат и извлечь 256-цветную палитру из Bitmap?

Ответы [ 5 ]

4 голосов
/ 09 января 2016

Используя растровый метод клонирования, вы можете напрямую преобразовать исходное изображение в индексированное изображение с палитрой 256 цветов, например:

Bitmap Result = Source.Clone(new Rectangle(0, 0, Source.Width, Source.Height), PixelFormat.Format8bppIndexed);

Тогда, если вы хотите получить доступ к цветам палитры, просто используйте свойство Result.Palette.Entries.

1 голос
/ 26 января 2012

У меня был такой же вызов ранее.Это можно решить с помощью GDI + в .Net.

Эта статья мне очень помогла (включая образцы): http://msdn.microsoft.com/en-us/library/Aa479306

Для наилучшего качества используйте «Квантование на основе октри».

0 голосов
/ 26 января 2012

WPF имеет доступ к компоненту обработки изображений Windows, оттуда вы можете использовать FormatConvertedBitmap для преобразования изображения в новый формат пикселей. WIC намного быстрее, чем методы System.Drawing в Vista и 7, и предоставит вам гораздо больше возможностей.

0 голосов
/ 26 января 2012

Некоторые материалы для чтения, чтобы вы начали.

  • Графические жемчужины I, стр. 287-293, «Простой метод квантования цвета: квантование Октри»

  • B. Курц. Оптимальное квантование цвета для цветных дисплеев. Материалы конференции IEEE по компьютерному зрению и распознаванию образов, 1983, с. 217-224.

  • Графика Gems II, стр. 116-125, "Эффективное вычисление карты обратных цветов"

В этом документе описывается эффективный метод сопоставления реальных цветов с уменьшенной картой цветов, выбранной с помощью другого метода, описанного в других статьях.

  • Graphic Gems II, стр. 126-133, «Эффективные статистические вычисления для оптимального квантования цвета»

  • Xiaolin Wu. Квантование цвета с помощью динамического программирования и основного анализа. ACM Транзакции на графике, Vol. 11, № 4, октябрь 1992 г., стр. 348-372.

0 голосов
/ 26 января 2012

Это не встроено, но вы можете использовать для этого внешние библиотеки .NET или выполнить консоль для запуска ImageMagic.

...