使用NGif创建动画GIF后无法删除jpg文件(Unable to delete jpg files after creating animated GIF using NGif)

编程入门 行业动态 更新时间:2024-10-11 13:21:17
使用NGif创建动画GIF后无法删除jpg文件(Unable to delete jpg files after creating animated GIF using NGif)

我已编程使用NGif从一些jog文件创建动画GIF文件。 正在创建动画文件(只是自动幻灯片放映)没有任何问题。 GIF的源图像(我创建动画的jpg文件)位于“Temp2”文件夹中。 我想删除包含文件的文件夹,但程序无法处理并给出消息:“...文件仍在被另一个进程使用”。

我创建的功能如下:

public void Create_Animated_GIF() { String Output_File_Path = Environment.CurrentDirectory + "\\Animation.gif"; AnimatedGifEncoder GEncoder = new AnimatedGifEncoder(); GEncoder.Start(Output_File_Path); GEncoder.SetDelay(100); GEncoder.SetRepeat(0); for (int i = 0; i < 2; i++) { GEncoder.AddFrame(System.Drawing.Image.FromFile(Image_URLs[i])); } /* try { System.IO.Directory.Delete(Environment.CurrentDirectory + "\\Temp2", true); } catch { } */ GEncoder.Finish(); System.IO.Directory.Delete(Environment.CurrentDirectory + "\\Temp2", true); }

The function that I created is as below:

public void Create_Animated_GIF() { String Output_File_Path = Environment.CurrentDirectory + "\\Animation.gif"; AnimatedGifEncoder GEncoder = new AnimatedGifEncoder(); GEncoder.Start(Output_File_Path); GEncoder.SetDelay(100); GEncoder.SetRepeat(0); for (int i = 0; i < 2; i++) { GEncoder.AddFrame(System.Drawing.Image.FromFile(Image_URLs[i])); } /* try { System.IO.Directory.Delete(Environment.CurrentDirectory + "\\Temp2", true); } catch { } */ GEncoder.Finish(); System.IO.Directory.Delete(Environment.CurrentDirectory + "\\Temp2", true); }

Here, I tried try-catch; it did not work!

Another function wjere I used this Temp2 folder is as follows:


public void Crop_Images() { if (!System.IO.Directory.Exists(Environment.CurrentDirectory + "\\Temp2\\")) System.IO.Directory.CreateDirectory(Environment.CurrentDirectory + "\\Temp2\\"); for (int i = 0; i < 2; i++) { System.Drawing.Image Source_Image = System.Drawing.Image.FromFile(Environment.CurrentDirectory + "\\Temp\\" + i.ToString() + ".jpg"); System.Drawing.Bitmap Source_Image_Btmp = new System.Drawing.Bitmap(Source_Image); System.Drawing.Rectangle Destin_Rect = new System.Drawing.Rectangle(1327, 1330, 632, 491); System.Drawing.Image Destin_Image = Source_Image_Btmp.Clone(Destin_Rect, Source_Image_Btmp.PixelFormat); Image_URLs[i] = Environment.CurrentDirectory + "\\Temp2\\" + i.ToString() + ".jpg"; Destin_Image.Save(Image_URLs[i]); Source_Image.Dispose(); Source_Image_Btmp.Dispose(); Destin_Image.Dispose(); } /* try { System.IO.Directory.Delete(Environment.CurrentDirectory + "\\Temp", true); } catch { } */ System.IO.Directory.Delete(Environment.CurrentDirectory + "\\Temp", true); }

Here, Temp folder is deleted successfully.

I tried to call the delete command after calling the relevant function from main; but still it didn't work!

Can anybody please help me how I can detach the folder from the process that I have created?

最满意答案

发布回答:

for (int i = 0; i < 2; i++) { using (var image = System.Drawing.Image.FromFile(Image_URLs[i])) { GEncoder.AddFrame(image); } }

Posting answer:

for (int i = 0; i < 2; i++) { using (var image = System.Drawing.Image.FromFile(Image_URLs[i])) { GEncoder.AddFrame(image); } }

更多推荐

本文发布于:2023-07-27 15:22:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1292369.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   动画   jpg   GIF   NGif

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!