سؤال

مرحبًا، أحاول حفظ صورة نقطية في برنامج محرر الصور الأساسي.

إليك الكود:

         // then save it
        ImageBoxInApp.Image.Save(filename);

[يحرر] وأنا أفتح الصورة بهذا

openFileDialog1.Title = "Select an Image";
        openFileDialog1.Filter = "All Files|*.*|Windows Bitmaps|*.bmp|JPEG Files|*.jpg";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            filename = openFileDialog1.FileName;
            Image img = System.Drawing.Image.FromFile(filename);

لذلك عندما أحاول ذلك أتلقى ملف Generic GDI+ error.لذلك وجدت أ حل إلى هذا ويبدو مثل هذا:

        // Delete existing file first
        System.IO.File.Delete(filename);
        // then save it
        ImageBoxInApp.Image.Save(filename);

ولكن عندما أحاول القيام بذلك، أتلقى خطأ آخر يفيد بأن الملف الذي أقوم بحذفه مفتوح حاليًا.وذلك لأن هذا هو الملف الذي أحاول تحريره.

كيف يمكنني "إغلاق" الملف دون إغلاق التطبيق فعليًا؟أم أن هناك حل بديل؟

شكرًا!

هل كانت مفيدة؟

المحلول

من الصعب تحديد ذلك دون رؤية بعض السياق حول كيفية تحميل الملف، ولكن إليك بعض الاقتراحات:

  1. قبل الحفظ، انسخ الصورة الموجودة إلى صورة جديدة، وأغلق الصورة الأصلية، وقم بإجراء الحذف، واحفظ النسخة.
  2. احفظ الملف باسم ملف عشوائي، واحذف الملف الأصلي، وأعد تسمية الملف المسمى عشوائيًا إلى الاسم الأصلي.
  3. قم بتحميل الملف في دفق ذاكرة واستخدم النسخة الموجودة في الذاكرة لتهيئة الصورة.

أنا شخصياً سأختار الخيار رقم 3 في معظم الحالات.تأكد من التخلص من الصورة عند الانتهاء من استخدامها - ومن الأفضل أن تتمكن من لفها في كتلة استخدام ( ).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top