Как преобразовать изображение в формате индексированного пикселя в 32-битное изображение?

У меня есть изображение, которое я получаю, и пытаюсь загрузить его в графический объект с помощью Graphics.FromImage(image), однако это вызывает исключение, если изображение имеет индексированный формат пикселей.

Есть ли способ безопасно конвертировать проиндексированное изображение?

Обновление: спасибо Джо за подсказку просто нарисовать старое изображение поверх нового, вместо этого я пытался преобразовать его. Это имеет большой смысл.

2 ответа

Решение

Один простой способ - создать новое изображение того же размера (с 32-битным пиксельным форматом). Затем создайте графический объект для этого изображения и нарисуйте оригинал поверх него.

То, что вы можете сделать, основано на индексах, которые вы можете вычислить евклидово расстояние в 3-канальном цветовом пространстве. Затем найдите ближайший цвет и используйте эти значения для вашего нового изображения.

Другие вопросы по тегам