日期:2014-05-17  浏览次数:20832 次

保存JPG图片的问题
我将在PictureBox中画的图保存成JPG格式的图片时没有问题,但保存的图片是全黑的。
如果保存成PNG格式的图片时则没有问题。

代码如下:

System.Drawing.Bitmap image;
System.Drawing.Graphics graphicsImage;

image = new System.Drawing.Bitmap(picMemo.BackgroundImage.Size.Width, picMemo.BackgroundImage.Size.Height);
graphicsImage = System.Drawing.Graphics.FromImage(image);
graphicsImage.DrawImage(picMemo.BackgroundImage, 0, 0);

image.Save(imageFilePath, System.Drawing.Imaging.ImageFormat.Png);


------解决方案--------------------
直接  picMemo.Image.Save(@"d:\pic.png");
       picMemo.Image.Save(@"d:\pic.jpg");
------解决方案--------------------
SaveImage(image,imageFilePath,GetCodecInfo("image/"+ImageFormat.Jpeg.ToLower()))//这样试试
        /// <summary>
        /// 保存图片
        /// </summary>
        /// <param name="image">Image 对象</param>
        /// <param name="savePath">保存路径</param>
        /// <param name="ici">指定格式的编解码参数</param>
        private static void SaveImage(Image image, string savePath, ImageCodecInfo ici)
        {
            //设置 原图片 对象的 EncoderParameters 对象
            EncoderParameters parameters = new EncoderParameters(1);
            parameters.Param[0] = new EncoderParameter(Encoder.Quality, ((long)100));
            image.Save(savePath, ici, parameters);
            parameters.Dispose();
        }

        /// <summary>
        /// 获取图像编码解码器的所有相关信息
        /// </summary>
        /// <param name="mimeType">包含编码解码器的多用途网际邮件扩充协议 (MIME) 类型的字符串</param>
        /// <returns>返回图像编码解码器的所有相关信息</returns>
        private static ImageCodecInfo Ge