2016-11-16 11 views
0

У меня есть растровое изображение, созданное сторонним программным обеспечением, которое позволяет использовать только базовые 16 цветов.ImageMagick меняет цвет на палитре с помощью C#

Мне нужно изменить чисто желтый желтый цвет RGB (255, 255, 0) до слегка темного оттенка, поэтому при печати мы видим, что там есть данные RGB (255, 192, 0).

Я нашел команду Mogrify, но это используется в командной строке, и мне нужно использовать эквивалент этого метода в C#.

Заранее большое спасибо: D

+0

Я сделал нечто подобное, используя ** AForge.Imaging ** библиотека, возможно, это может быть более простой вариант, вот все, что вам нужно, чтобы получить его работу: HTTP: // www.aforgenet.com/framework/docs/html/67fa83b5-dede-8d3a-8d3b-b7a6b9859538.htm и http://www.aforgenet.com/framework/docs/html/35bd90e3-4e35-8f5f-e255-26c5d8d4b927. HTM – Innat3

ответ

1

Мой ответ предполагает, что изображение имеет индексированную палитру цветов. Вы можете редактировать палитру файла .BMP (или проиндексированного .PNG) с использованием объектов System.Drawing. Код будет выглядеть следующим образом:

using System.Drawing; 
using System.Drawing.Imaging; 
... 
using (var bmp = (Bitmap)(Image.FromFile("input.bmp"))) 
{ 
    var paletteCopy = bmp.Palette; 

    // palette index 11 is bright yellow in the standard palette 
    paletteCopy.Entries[11] = Color.FromArgb(255, 192, 0); 
    bmp.Palette = paletteCopy; 
    bmp.Save("output.bmp", ImageFormat.Bmp); 
}