c# – 保存图像,GDI中发生了一般错误
发布时间:2020-12-16 01:33:22 所属栏目:百科 来源:网络整理
导读:我得到了 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.I
我得到了
我调用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,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,encoderParams); img.Save(path,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创建图像,然后关闭文件流.这样文件就不再使用了,您可以替换它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |