> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/alblwkat-alwzyfyh/blocks-reference/input-output/outputs-exports/image-write.md).

# Image Write

تقوم هذه الدالة (function block) بحفظ الصور الواردة إلى القرص عندما يكون شرط الحفظ مفعلًا. تدعم ضغطًا اختياريًا (JPEG) وتسمية تلقائية للملفات، ومصممة لتسهيل تصدير الصور الملتقطة أو المعالجة.

## 📥 المدخلات

`Folder Path`\
المسار الكامل للمجلد الذي سيتم حفظ الصورة فيه. إذا تُرك فارغًا، يُستخدم مجلد العمل الحالي.

`File Name`\
اسم ملف اختياري بدون الامتداد. إذا تُرك فارغًا، يتم استخدام اسم تلقائي مبني على الطابع الزمني (timestamp).

`Save`\
مشغل منطقي (Boolean) يتحكم بما إذا كانت الصورة ستُكتب على القرص أم لا. أعطِ TRUE للحفظ، FALSE لإيقاف الحفظ.

`Input Image`\
الصورة المراد حفظها. يقبل أي صيغة صورة شائعة قادمة من الكتل السابقة.

## 📤 المخرجات

لا يولد هذا البلوك مقابس إخراجية. يعرض الحالة عبر رسائل السجل (log messages) المرئية في واجهة المستخدم.

## 🕹️ عناصر التحكم

`Compress Image`\
مربع اختيار للتحويل بين حفظ الصورة كملف JPEG مضغوط أو كـ PNG بدون فقدان. استخدم الضغط لتقليل حجم الملف عند الحاجة لتوفير مساحة أو عرض نطاق.

## 🎨 الميزات

* الحفظ عند الطلب عبر مدخل `Save` المنطقي.
* استخدام اسم ملف تلقائي يعتمد على الطابع الزمني في حال عدم تزويد اسم.
* خيار الحفظ كـ JPEG مضغوط أو PNG بدون فقدان.
* رسائل سجل معلوماتية تؤكد النجاح أو تُبلغ عن أخطاء (مجلد مفقود، صلاحيات، أو عدم وجود صورة).
* واجهة بسيطة للتحكم في تفعيل/تعطيل الضغط.

## ⚙️ آلية التشغيل

عندما يكون مدخل `Save` مفعلًا (TRUE)، يحاول البلوك كتابة صورة `Input Image` الحالية إلى المسار المحدد بواسطة `Folder Path` و `File Name`. إذا كان `Compress Image` مفعلًا، تُحفظ الصورة بصيغة JPEG لتقليل الحجم؛ وإلا تُحفظ كـ PNG. إذا لم يكن المجلد موجودًا أو كانت الصورة مفقودة، يسجل البلوك خطأ بدلاً من الحفظ.

## 📝 إرشادات الاستخدام

1. حدد مجلد الوجهة باستخدام مدخل `Folder Path` أو اتركه فارغًا لاستخدام المجلد الافتراضي.
2. اختياريًا ضع `File Name` أو اتركه فارغًا لاستخدام اسم تلقائي بطابع زمني.
3. زوّد الصورة المراد حفظها بمقبس `Input Image`.
4. فعّل مدخل `Save` (مثلاً عبر مشغل يدوي أو منطق برمجي) لكتابة الملف.
5. استخدم مربع `Compress Image` للاختيار بين JPEG (أصغر) أو PNG (بدون فقدان).

## 💡 نصائح وحيل

* استخدم `Choose Folder` لتمكين المستخدمين من اختيار المجلد المستهدف تفاعليًا قبل الحفظ.
* اجمع مع `String Input` أو `Date-Time` لبناء أسماء ملفات وصفية ومُوسومة بالزمن.
* معاينة الصورة باستخدام `Show Image` قبل الحفظ للتحقق من المحتوى.
* إذا كانت الصور كبيرة، أضف `Image Resizer` قبل هذا البلوك لتقليل دقة الصورة وتحسين سرعة الحفظ والتمرير.
* استخدم `Image ROI Select` أو `Draw Result On Image` لاقتطاع أو تعليق الصور قبل الحفظ (مثال: حفظ مناطق مكتشفة أو نتائج مُعلّمة).
* عند الحاجة لتسجيل معدل عالٍ من الصور، فكّر باستخدام `Image Logger` أو `Record Video` بدل حفظ إطارات فردية عند كل تريجر.

## 🛠️ استكشاف الأخطاء وإصلاحها

* عدم وجود المجلد أو خطأ صلاحيات الكتابة: تحقق من المسار المقدم في `Folder Path` واستخدم `Choose Folder` لتجنب الأخطاء الإملائية.
* خطأ "No image data available": تأكد أن مقبس `Input Image` يستقبل بيانات صورة صالحة قبل تفعيل تريجر `Save`. عاين باستخدام `Show Image`.
* ملفات كبيرة أو بطء في الحفظ: فعّل `Compress Image` أو أضف `Image Resizer` لتقليل الدقة قبل الحفظ.
* أسماء ملفات غير متوقعة: أضف `Date-Time` أو `String Input` لتوليد أسماء فريدة ووصفية وتجنّب الكتابة فوق ملفات سابقة.

إذا كنت تحفظ بشكل متكرر في فترات قصيرة، تأكد من أن مساحة التخزين وجهة الكتابة لديها أداء كتابة كافٍ ومساحة حرة كافية لسيناريو عملك.
