我正在尝试从文件系统加载图像,重新着色,然后将其保存到 Stream。有问题的图像是相当简单的单色几何形状。
我有它的工作,但生成的图像沿边缘严重像素化。
我试过 System.Drawing:
var colorMap = new ColorMap
{
OldColor = Color.FromArgb(255, 255, 255, 255),
NewColor = Color.FromArgb(255, 255, 0, 0)
};
var imageAttrs = new ImageAttributes();
imageAttrs.SetRemapTable(new[] {colorMap});
var newImage = new Bitmap(image.Width, image.Height);
var graphics = Graphics.FromImage(newImage);
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.DrawImage(image,
new Rectangle(0, 0, image.Width, image.Height),
0, 0,
image.Width,
image.Height,
GraphicsUnit.Pixel,
imageAttrs);
我也尝试了 ImageProcessor 库,使用它的 ReplaceColor() 方法,但我得到了相同的结果(虽然没有那么糟糕)。
有什么方法可以做到这一点并保留我原始图像的平滑边缘吗?