1

我有以下代码使用以下代码调整单色图像的大小(因此像素值为 0 [黑色] 或 255 [白色])

        Bitmap ResizedCharImage = new Bitmap(newwidth, newheight);

        using (Graphics g = Graphics.FromImage((Image)ResizedCharImage))
        {
            g.CompositingQuality = CompositingQuality.HighQuality;
            g.InterpolationMode = InterpolationMode.HighQualityBilinear;
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.PixelOffsetMode = PixelOffsetMode.HighQuality;
            g.DrawImage(CharBitmap, new Rectangle(0, 0, newwidth, newheight),
                new Rectangle(0, 0, CharBitmap.Width, CharBitmap.Height), GraphicsUnit.Pixel);
        }

我遇到的问题是,在调整大小(我正在放大图像)之后,一些像素值变为 254、253、1、2 等(因此不是单色的。)我需要这种情况不会发生。这可能吗,也许是通过更改 Graphins 属性之一?

4

2 回答 2

3

利用SmoothingMode.None

于 2010-04-08T16:58:49.750 回答
2

显然问题通过将 InterpolationMode 设置为

InterpolationMode.NearestNeighbor;
于 2010-04-08T17:04:20.270 回答