> 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-logger.md).

# Image Logger

هذه الدالة تحفِظ إطارات الصور الواردة إلى القرص مع إمكانية ضبط اسم الملف، الصيغة وقيود التخزين. استخدمها لالتقاط وأرشفة الصور عند استلام إشارة زناد، أو لتفريغ صور دورياً للفحص.

## 📥 المدخلات

* `Folder Path` - المجلد الهدف حيث سيتم حفظ الصور. قدّم مسارًا صالحًا.
* `File Name` - اسم ملف اختياري. إذا تُرك فارغًا سيتم استخدام اسم يعتمد على الطابع الزمني.
* `Image Limit` - الحد الأقصى الاختياري لعدد الصور المحتفظ بها في المجلد. عند تجاوز الحد يتم حذف أقدم الملفات.
* `Input Image` - بيانات الصورة المراد حفظها. اربط أي بلوك ينتج صورة بهذا الإدخال.
* `Trigger` - زناد من النوع Boolean يتحكم في الحفظ. عند تنشيط الزناد تُكتب الصورة وفق الإعدادات المُهيأة.

## 📤 المخرجات

هذا البلوك لا يولّد أي مخرجات.

## 🕹️ الضوابط

* `Save Mode` - قائمة منسدلة للاختيار بين `Full Size` (PNG) و`Compressed` (JPEG). الوضع المضغوط يقلل حجم الملف على حساب الجودة.

## 🎨 الميزات

* تسمية تلقائية بالطابع الزمني عندما لا يتم توفير `File Name`.
* إمكانية ضغط الصورة لتقليل استخدام القرص.
* حد لعدد الصور في المجلد مع حذف تلقائي لأقدم الملفات لفرض الحد.
* يعمل مع أي مصدر صورة وارد (كاميرات، محمّلات، أو صور معالجة).
* رسائل معلوماتية وواضحة تُسجّل عند نجاح الحفظ أو فشله.

## 📝 تعليمات الاستخدام

1. حدِّد المجلد الهدف عبر `Folder Path` أو استخدم بلوك يوفّر المسار.
2. اختياريًا قدّم `File Name`؛ اتركه فارغًا لاستخدام اسم بالطابع الزمني تلقائيًا.
3. اختياريًا عيّن `Image Limit` للتحكم بعدد الصور المحتفظ بها في المجلد.
4. اربط مصدر صورة بـ`Input Image`.
5. استخدم `Trigger` للتحكم بوقت كتابة الصور؛ فعّل الزناد لحفظ الصورة الحالية.
6. اختر وضع الحفظ عبر `Save Mode` لإخراج PNG بالحجم الكامل أو JPEG المضغوط.

## 📊 التقييم

عند استلام البلوك لـ`Input Image` صالح وتنشيط شرط `Trigger`، يحاول حفظ الصورة إلى المسار المحدد في `Folder Path` باستخدام وضع الحفظ المختار. إذا احتوى المجلد على صور أكثر من قيمة `Image Limit` فستُحذف أقدم الملفات ليتوافق المجلد مع الحد. تُعرض رسائل معلوماتية عند النجاح ورسائل خطأ تشرح حالات الفشل (مسار غير صالح، أذونات كتابة، إلخ).

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

* استخدم `Choose Folder` للسماح للمستخدمين باختيار المجلد بصريًا وتغذيته إلى `Folder Path`.
* اجمع `Date-Time` (الطابع الزمني) مع `File Name` لإنشاء أسماء قابلة للقراءة والتنظيم الزمني.
* اعرض الصور قبل الحفظ بإرسال نفس الصورة إلى `Show Image` لفحص الإطارات بصريًا.
* قلّل استخدام القرص بإضافة `Image Resizer` قبل هذا البلوك لتقليل دقة الصور الكبيرة قبل الحفظ.
* عند الالتقاط من مصادر مباشرة، ادمج مع `Camera USB`, `Camera IP (ONVIF)`, أو `Stream Reader` لأرشفة إطارات من كاميرات أو تيارات.
* إذا احتجت بيانات وصفية مهيكلة مع الملفات، أرسل مخرجات الكشف/القياس إلى `CSV Export` لتسجيل تفاصيل (اسم الملف، الطابع الزمني، العدد).
* استخدم `File/Folder Operations` لإنشاء مجلدات أو إدارة الملفات المحفوظة برمجياً قبل أو بعد التسجيل.
* لتدفقات التطبيق التي تكتب عدة صور دفعة واحدة، فكّر في استخدام `Multi Image Write` أو `Image Write` كبدائل عند الحاجة إلى توقيت أو تسمية مختلفة.

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

* أخطاء مسار غير صالح: تحقق أن `Folder Path` موجود وأن للتطبيق أذونات كتابة. استخدم `File/Folder Operations` لإنشاء المجلدات المطلوبة أولًا.
* لا يتم حفظ أي صورة: تأكد أن `Input Image` موصول وأن `Trigger` مفعل عندما تتوقع الحفظ.
* تراكم عدد كبير من الملفات: عيّن `Image Limit` مناسبًا أو شغّل روتين تنظيف باستخدام `File/Folder Operations`.
* الملفات الكبيرة تبطئ الحفظ: غيّر `Save Mode` إلى `Compressed` أو أضف `Image Resizer` قبل البلوك.
* إذا تصادمت أسماء الملفات، أضف طابعًا زمنيًا (عن طريق `Date-Time`) أو فهرسًا لضمان تفرد الأسماء.
