ImageMagick 使用 C# 更改替换调色板上的颜色
ImageMagick changing replacing a color on palette using C#
我有一张由第三方软件生成的位图图像,只允许使用基本的 16 种颜色。
我需要将纯黄色 RGB(255, 255, 0) 更改为稍深的阴影,以便在打印时我们可以看到那里有数据 RGB(255, 192, 0)。
我找到了 Mogrify 命令,但它在命令提示符中使用,我需要在 C# 中使用与此方法等效的方法。
非常感谢:D
我的回答是假设您的图像具有索引调色板。您可以使用 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);
}
我有一张由第三方软件生成的位图图像,只允许使用基本的 16 种颜色。
我需要将纯黄色 RGB(255, 255, 0) 更改为稍深的阴影,以便在打印时我们可以看到那里有数据 RGB(255, 192, 0)。
我找到了 Mogrify 命令,但它在命令提示符中使用,我需要在 C# 中使用与此方法等效的方法。
非常感谢:D
我的回答是假设您的图像具有索引调色板。您可以使用 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);
}