zoukankan      html  css  js  c++  java
  • c# 画图中bitmap类处理出图片时,存储的注意事项

    今天查找以前写的画图程序,想完善一下,发现

    图片添加文字水印时候会有些模糊,特别是小字体的时候特别模糊,

    经过一番调适,终于发现了问题

    帖上代码,警示自己

       System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath("b1.jpg"));
            Bitmap bitWaterMark = new Bitmap(image.Width, image.Height);
            Graphics g = Graphics.FromImage(bitWaterMark);

            g.DrawImage(image, 0, 0, image.Width, image.Height);

            Font f = new Font("verdana", 14);
            Brush c = new SolidBrush(Color.FromName("red"));
            string addtext = "测试字体啊";
            g.DrawString(addtext, f, c, 10, 1);
            g.Dispose();
            image.Dispose();
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            bitWaterMark.Save(ms, ImageFormat.Bmp);

       //bitWaterMark.Save(ms, ImageFormat.Jpeg);
            //重新生成Image对象
            System.Drawing.Image img2 = System.Drawing.Image.FromStream(ms);
            //返回新的Image对象
            //bitWaterMark.Save(Server.MapPath("test.jpg"));
            img2.Save(Server.MapPath("test.jpg"));

          //img2.Save(Server.MapPath("test.jpg"), ImageFormat.Jpeg);
            bitWaterMark.Dispose();

    红色字体部分是问题所在,今天才发现这个问题,我想如果用C#画图的朋友也会发现这个问题

    用bitemap类不管是存储到文件,还是存储为数据流来处理 image 对象时候,如果 加上ImageFormat.Jpeg

    都会让图片变模糊,真是很诡异,如果 必须要存储为数据流,那么用ImageFormat.Bmp存储然后保存,生成的图片也会比ImageFormat.Jpeg要清晰的多,但问题终于解决了,生成的图片很清晰了。

  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/yeye518/p/2266525.html
Copyright © 2011-2022 走看看