首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

保存JPG图片的有关问题

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

保存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 GetCodecInfo(string mimeType)
        {
            ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
            foreach (ImageCodecInfo ici in CodecInfo)
            {
                if (ici.MimeType == mimeType)
                    return ici;
            }
            return null;
        }

热点排行