ImageMagick使用C#更改调色板上的颜色

时间:2016-11-16 14:57:27

标签: c# imagemagick color-palette magick.net

我有第三方软件生成的位图图像,只允许使用基本的16种颜色。

我需要将纯黄色RGB(255,255,0)更改为稍暗的色调,因此在打印时我们可以看到RGB(255,192,0)处有数据。

我找到了Mogrify命令,但在命令提示符中使用了该命令,我需要在C#中使用等效的方法。

非常感谢提前:D

1 个答案:

答案 0 :(得分:1)

我的回答是假设您的图像具有索引调色板。您可以使用System.Drawing对象编辑.BMP文件(或索引的.PNG)的调色板。代码如下所示:

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);
}