在C#中调整单色图像的大小

时间:2010-04-08 16:54:45

标签: c# image-resizing

我有以下代码用以下代码调整单色图像的大小(因此像素值为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属性之一吗?

2 个答案:

答案 0 :(得分:3)

使用SmoothingMode.None

答案 1 :(得分:2)

通过将InterpolationMode设置为

,显然解决了问题
InterpolationMode.NearestNeighbor;