保存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;
}