调整位图图像的大小并制作粗线

时间:2019-04-25 12:11:53

标签: c# image bitmap

我尝试从原始图像创建缩略图,以便在我的asp.net MVC应用程序中使用。

使用下面的代码,我可以执行任务,但结果不够清楚。

我的问题是,是否有更好的方法可以做到这一点,并且是否有可能使结果与图像上的预期结果一样清晰。

这是我的代码:

    var tracedPath = @"C:\Users\co\Desktop\traced.png";
        var targetPath = @"C:\Users\co\Desktop\thumbnail.png";

        Bitmap bmpSource = new Bitmap(tracedPath);
        Bitmap bmpTarget = new Bitmap(224, 210);

        var width = 85;
        var height = 210;
        var bmpResizedSource = new Bitmap(bmpSource, width, height);

        using (Graphics grD = Graphics.FromImage(bmpTarget))
        {
            grD.DrawImage(bmpResizedSource, new RectangleF((224 - 75) / 2, 5, 75, 200), new RectangleF(0, 0, 85, 210), GraphicsUnit.Pixel);
        }

        bmpTarget.Save(targetPath);

        Color pixel = Color.Transparent;
        for (int x = 0; x < 224; x++)
        {
            for (int y = 0; y < 210; y++)
            {
                pixel = bmpTarget.GetPixel(x, y);
                if (pixel.A > 0)
                {
                    bmpTarget.SetPixel(x, y, Color.Black);
                }
            }
        }
        bmpTarget.Save(targetPath);

以下是解释我要做什么的图像: enter image description here

2 个答案:

答案 0 :(得分:2)

不确定这是否能帮助您解决问题,但是由于我需要添加图片,因此必须将其发布为答案... 在一般情况下,您的问题的答案非常取决于图像内容。如果您总是要进行黑白素描,这将有所帮助: 重新缩放图像,对其应用较小的半径高斯,并增加其对比度/降低其透明度,结果如下所示。您可以通过更改高斯滤镜的半径来改变线宽。请注意,高调会导致您的图像完全消失 enter image description here

*还请考虑是否不能使用路径而不是图像来显示这样的形状

答案 1 :(得分:1)

这是主要来自this post

的函数
character

应用一次的结果:

enter image description here

您可以更频繁地应用它,并且在第二次迭代中使用对比度> 1.。

说明:我首先缩放原始图像,从而产生一点模糊(抗锯齿)。然后,通过应用较大的伽玛值使所有灰色像素变暗,并最终恢复原始尺寸。这与Denis的帖子基本上是相同的想法,但是在工作的GDI +代码中。

相关问题