Как удалить файл изображения из определенного пути к папке? - PullRequest
0 голосов
/ 04 июня 2018

Я создал два изображения. Первое - это изображение штрих-кода, второе - SkuImage, после чего я объединил его в третье изображение (окончательное изображение).после успешного слияния я хочу удалить изображение штрих-кода и изображение Sku из определенной папки, но когда я пытаюсь удалить файл изображения, он выдает мне ошибку, т.е. «Процесс не может получить доступ к файлу \ Path \, поскольку он используется другим процессом».перед удалением я удалил изображение, подобное этому «SkuImage.Dispose ()», но оно не удаляется.Как мне удалить это?

barcodeImage = b.Encode(BarcodeLib.TYPE.CODE128, "001234", Color.Black, Color.White, 113, 18);
Bitmap SkuImage = new Bitmap(113, 18, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
RectangleF rectf = new RectangleF(10, 5, 113, 18);
Graphics graphics = Graphics.FromImage(SkuImage);
// SkuImage.SetPixel(10,10,Color.Blue);
graphics.DrawString(StringToEncode, new Font("Arial", 4), Brushes.Black, rectf);
b.SaveImage(MemStream, savetype);
MemStream.Close();
barcodeImage.Dispose();
SkuImage.Save(imgSkupath);
SkuImage.Dispose();
g.Clear(Color.White);   //here change BG color of Image
g.DrawImage(Image.FromFile("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/" + Filename), new Point(15, 15));
g.DrawImage(Image.FromFile("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/Sku.jpg"), new Point(25, 30));
img.Save("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/FinalImage.jpeg", ImageFormat.Jpeg);
File.Delete("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/Sku.jpg");
File.Delete("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/" + Filename);

Ответы [ 3 ]

0 голосов
/ 08 июня 2018
               string Filename = "Barcodeimage" + i + ".jpeg";



                string imgsavepath = "E:\\Pankaj\\BarcodeDemo\\BarcodeDemo\\BarcodeImage\\" + "BarcodeImg.jpeg";

                string imgSkupath = "E:\\Pankaj\\BarcodeDemo\\BarcodeDemo\\BarcodeImage\\" + "Sku.jpeg";
                BarcodeLib.SaveTypes savetype = BarcodeLib.SaveTypes.UNSPECIFIED;
                savetype = BarcodeLib.SaveTypes.JPG;
                System.IO.FileStream MemStream = new FileStream(imgsavepath, FileMode.Create, FileAccess.Write);

                System.Drawing.Image barcodeImage = null;
                //Bitmap FinalImage = null;
                BarcodeLib.Barcode b = new BarcodeLib.Barcode();


                //b.IncludeLabel = true;
                b.LabelFont = new Font("Arial", 5);

                string sku = "SKU:VXN4214IN";
                string StringToEncode = "16280/" + i + ' ' + sku;

                Image img = new Bitmap(130, 50);  //final image

                Graphics g = Graphics.FromImage(img);


                barcodeImage = b.Encode(BarcodeLib.TYPE.CODE128, "001234", Color.Black, Color.White, 113, 18);



                Bitmap SkuImage = new Bitmap(113, 18, System.Drawing.Imaging.PixelFormat.Format32bppArgb);

                RectangleF rectf = new RectangleF(10, 5, 113, 18);
                Graphics graphics = Graphics.FromImage(SkuImage);
                // SkuImage.SetPixel(10,10,Color.Blue);
                graphics.DrawString(StringToEncode, new Font("Arial", 4), Brushes.Black, rectf);



                b.SaveImage(MemStream, savetype);
                MemStream.Close();
                barcodeImage.Dispose();

                SkuImage.Save(imgSkupath);
                graphics.Dispose();
                SkuImage.Dispose();

                g.Clear(Color.White);   //here change BG color of Image



                System.IO.FileStream fileStream1 = new FileStream("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/BarcodeImg.jpeg", FileMode.Open, FileAccess.Read);

                System.IO.FileStream fileStream2 = new FileStream("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/Sku.jpeg", FileMode.Open, FileAccess.Read);


                g.DrawImage(Image.FromStream(fileStream1), new Point(15, 15));
                g.DrawImage(Image.FromStream(fileStream2), new Point(25, 30));
               // g.DrawImage(Image.FromFile("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/" + Filename), new Point(15, 15));
                //g.DrawImage(Image.FromFile("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/Sku.jpg"), new Point(25, 30));



                img.Save("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/"+Filename, ImageFormat.Jpeg);

                fileStream1.Close();
                fileStream2.Close();
                g.Dispose();

                 File.Delete("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/Sku.jpeg");
                 File.Delete("E:\\" + @"Pankaj/BarcodeDemo/BarcodeDemo/BarcodeImage/BarcodeImg.jpeg");
0 голосов
/ 08 июня 2018
Dim _strImagePath = ""
Dim _strImageName = "image.jpg"

'Get the path
_strImagePath = "YOUR_IMAGE_PATH"

'Delete the image physically
Dim strImageName As New FileInfo(_strImagePath & _strImageName)
If strImageName.Exists Then
   strImageName.Delete()
End If
0 голосов
/ 04 июня 2018

Вы должны располагать каждым классом, который реализует IDisposable.Затем вы можете удалить файл изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...