System.Drawing.Bitmap addBitmap = new Bitmap(StringFileName);                Graphics G = Graphics.FromImage(addBitmap);                G.DrawImage(addBitmap, 0, 0, addBitmap.Width, addBitmap.Height);
                G.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;                G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;                G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;                G.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                G.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;                 G.DrawString(StringSYName, richTextBox1.Font, new SolidBrush(richTextBox1.ForeColor), Left, Top);                G.Dispose();
addBitmap.Save("文件名")    源文件的大小有110多KB,很清楚的一张图片,加文字水印后,保存后的新文件,只有30K的样子,有点模糊,文件质量大不如以前,
请问有什么办法让加水印后的图片和源图片一样清晰,效果一样的不错,图片文件大小也和原来差不多!

解决方案 »

  1.   

    JPG和Bmp都是一样的效果,都这如我描述的那样子。
      

  2.   

    我也用过Graphics画过图片,也写上去的字,但不是水印,没出现模糊现象....
    当然,我这断代码是写在时间事件里的,希望对你有所帮助
                  
                Image curImage;//存放当前图片
                  private Graphics curGra;//从资源文件中画出图片的画图            curImage = new Bitmap(this.screenWidth, this.screenHeight);
                curGra = Graphics.FromImage(curImage);
                curGra.DrawImage(GetImage("_" + i.ToString()), 0, 0, this.screenWidth, this.screenHeight);
                this.CreateGraphics().DrawImage(curImage, new Point(0, 0));
                this.CreateGraphics().Dispose();
                
                this.CreateGraphics().DrawString("这是我的图片!", new Font("宋体", 50, FontStyle.Bold), Brushes.Blue, 10, 10);
      

  3.   

    把下面的都删除了 看看
      G.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;                 G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;                 G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;                 G.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; 
                    G.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; 
      

  4.   

    保存的时候要设计图片质量的
     
    Bitmap bitmap = new Bitmap(width, height);
                    //修改图片保存质量
                    ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");
                    myEncoder = Encoder.Quality;
                    myEncoderParameters = new EncoderParameters(1);
                    //图片质量等级
                    myEncoderParameter = new EncoderParameter(myEncoder, 100L);
                    myEncoderParameters.Param[0] = myEncoderParameter;
                    //建立做图纸
                    Graphics g = Graphics.FromImage(bitmap);
                    g.Clear(Color.White);
                    //做图质量
                    g.SmoothingMode = SmoothingMode.AntiAlias;//图像输出
                    bitmap.Save(Response.OutputStream, myImageCodecInfo, myEncoderParameters);
      

  5.   

    之前定义的三个变量
    忘了不好意思
    private Encoder myEncoder;
        private EncoderParameter myEncoderParameter;
        private EncoderParameters myEncoderParameters;