gpt4 book ai didi

c# - 正在保存图像,GDI+ 中出现一般性错误

转载 作者:行者123 更新时间:2023-11-30 14:20:02 25 4
gpt4 key购买 nike

我得到一个

A generic error occurred in GDI+

当我调用 img.Save(path, jpegCodec, encoderParams);
时出现异常这是所有代码:

    private Image img;

private void button1_Click(object sender, EventArgs e)
{
this.img = Image.FromFile(@"path");

pictureBox1.Image = img;

if (img.Height < pictureBox1.Height && img.Width < pictureBox1.Width)
{
this.pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
}

Graphics g = Graphics.FromImage(img);

Font font=new Font("Arial",16);

SolidBrush brush = new SolidBrush(Color.Black);

brush.Color = Color.FromArgb(255, 0, 0, 255);

g.DrawString("myName", font, brush, img.Width - 178, img.Height-105);
}

private void button2_Click(object sender, EventArgs e)
{
Bitmap bitmap = new Bitmap(img);

saveJpeg(@"path", bitmap, 85L);
}

private void saveJpeg(string path, Bitmap img, long quality)
{
// Encoder parameter for image quality
EncoderParameter qualityParam =new EncoderParameter(Encoder.Quality, quality);

// Jpeg image codec
ImageCodecInfo jpegCodec = getEncoderInfo("image/jpeg");

if (jpegCodec == null)
return;

EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;

//img.Save(path, jpegCodec, encoderParams);
img.Save(path, jpegCodec, encoderParams);
}
private ImageCodecInfo getEncoderInfo(string mimeType)
{
// Get image codecs for all image formats
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

// Find the correct image codec
for (int i = 0; i < codecs.Length; i++)
if (codecs[i].MimeType == mimeType)
return codecs[i];
return null;
}

你愿意帮我吗?

最佳答案

只要通过从文件加载图像创建的图像对象存在,该文件就在使用中。文件正在使用时,您无法使用相同名称保存图像。

不是使用 Image.FromFile 加载图像,而是打开文件流并使用 Image.FromStream 创建图像,然后关闭文件流。这样文件就不再使用了,您可以替换它。

关于c# - 正在保存图像,GDI+ 中出现一般性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1781390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com