Image imgPic = Image.FromFile(backGroundImgPath);
            Graphics gPic = Graphics.FromImage(imgPic);            Font font = new Font("微软雅黑", 14, FontStyle.Bold);            gPic.DrawString(titleStr, font, new SolidBrush(Color.FromArgb(1, 77, 161)), new Point(20, 0));            imgPic.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Bmp);这段代码错在哪里?每次运行提示一般性错误
设置为jpeg格式什么问题没有,但设置成bmp就报错

解决方案 »

  1.   

    而是因为使用位图的原因,位图格式的图片是很特别的,我把搂主代码修改了下: 
    string fileName = @"E:\a.bmp"; 
    PictureBox pb = new PictureBox(); 
    this.Controls.Add(pb); 
    using (FileStream fs = new FileStream(fileName, FileMode.Open)) 

        Bitmap bmp = Bitmap.FromStream(fs) as Bitmap; 
        pb.Image = new Bitmap(bmp.Width, bmp.Height); 
        Graphics g = Graphics.FromImage(pb.Image); 
        g.DrawImage(bmp, 0, 0); 
        g.Dispose(); 

    pb.Image.Save(@"E:\a2.bmp"); 这样就没有异常了
      

  2.   

    你试试以下两行代码的区别就知道了
    Response.TransmitFile(@"d:\aa.jpg");Response.TransmitFile(@"d:\aa.bmp");http上不能直接输出bmp的
      

  3.   

    FileStream fs = new FileStream(backGroundImgPath , FileMode.Open);
                Bitmap bm = Bitmap.FromStream(fs) as Bitmap;
                //Image imgPic = Image.FromFile(backGroundImgPath);
                Graphics gPic = Graphics.FromImage(bm);            Font font = new Font("微软雅黑", 14, FontStyle.Bold);            gPic.DrawString(titleStr, font, new SolidBrush(Color.FromArgb(1, 77, 161)), new Point(20, 0));            bm.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Bmp);
    照代码改过,还是一样,另外,我这个是web form里面,希望直接输出到客户端
    因为jpeg压缩得太历害了,字的周围被压得满是色斑,其实主要是想解决让文本变清晰的问题,虽然我也加了
    gPic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
                    gPic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                    gPic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;这三条,但是输出结果还是一样,没什么起色,所以想求解
      

  4.   

    问题解决了,分送大家吧FileStream fs = new FileStream(backGroundImgPath , FileMode.Open); 
                Bitmap bm = Bitmap.FromStream(fs) as Bitmap; 
                //Image imgPic = Image.FromFile(backGroundImgPath); 
                Graphics gPic = Graphics.FromImage(bm);             Font font = new Font("微软雅黑", 14, FontStyle.Bold);             gPic.DrawString(titleStr, font, new SolidBrush(Color.FromArgb(1, 77, 161)), new Point(20, 0)); ImageCodecInfo ici = ImageCodecInfo.GetImageEncoders()[1];
    System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.Quality;
    System.Drawing.Imaging.EncoderParameters encoderParameters = new EncoderParameters(1);
    System.Drawing.Imaging.EncoderParameter encoderParameter = new EncoderParameter(encoder, 100L);
    encoderParameters.Param[0] = encoderParameter;            bm.Save(System.Web.HttpContext.Current.Response.OutputStream, ici, encoderParameters); 
    代码贴出来,也许以后有人用得着