الصور.xcf
XCF (GIMP) عارض
حول XCF (GIMP)
صيغة GIMP الأصلية متعدّدة الطبقات — معاينة بنيوية مع شجرة طبقات.
XCF هي صيغة GIMP الأصلية الكاملة الطبقات — أقنعة، قنوات، مسارات، طفيليات، إضافة إلى دقة عشوائية (8-بت صحيح حتى 32-بت عائم). لا يوجد عارض في المتصفح اليوم (حزمة xcf-js المُشار إليها في الدروس لم تصل إلى npm؛ ونقل مُركّب GIMP كاملاً خارج النطاق)، لكن مواصفة XCF منشورة، فيمكننا تحليل الرأس بأنفسنا. نستخرج إصدار GIMP الذي كتب الملف، وأبعاد اللوحة، والنوع الأساسي (RGB/تدرج رمادي/مفهرس)، والدقة، وكل مؤشّر طبقة، وأوائل ~24 اسمًا وحجمًا للطبقات عبر المرور على سلسلة اسم كل كتلة طبقة.
الأسئلة الشائعة
- لماذا تُعرض شجرة الطبقات لا التركيب الفعلي؟
- يتطلب رسم تركيب XCF تشغيل محرك تركيب الطبقات الكامل لـ GIMP: أنماط الخلط، أقنعة الطبقات، طبقات المجموعات، التذبذب للنوع الأساسي المفهرس، وفكّ ترميز صيغة RLE لكل بلاطة المستخدمة لتخزين بيانات البكسل. ذلك مئات الآلاف من أسطر شيفرة C في GIMP نفسه. نحلّل الرأس وفهرس الطبقات بـ TypeScript صرف كي تتأكد ممّا في الداخل، أما البكسلات الفعلية فتحتاج GIMP أو Krita (التي تفتح XCF للعرض) أو تحويل ImageMagick من جهة الخادم.
- أي إصدارات XCF يدعمها الفاحص؟
- نقرأ وسم الإصدار من 5 بايتات بعد السحر — "file" لـ XCF1 الأصلي (GIMP 2.4 قبل 2008)، ثم "v001"/"v002"/… للمراجعات الأحدث. أضاف v004 كلمة الدقة لدعم العمق العالي. يتعامل محلّلنا مع كل الإصدارات حتى v013 (GIMP 2.10/3.0 الحالي)؛ ويعمل المرور على مؤشرات الطبقات بالطريقة ذاتها عبر الإصدارات.
- كيف أحصل على صورة عادية من ملف XCF؟
- GIMP نفسه: File → Export As → PNG/JPEG/TIFF. سطر الأوامر: gimp --batch '(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE "in.xcf" "in.xcf")))) (file-png-save RUN-NONINTERACTIVE image (car (gimp-image-flatten image)) "out.png" "out" 0 9 1 1 1 1 1))' -b '(gimp-quit 0)'. يفتح Krita XCF مباشرة أيضًا. وسيقرأ ImageMagick صيغة XCF إن بُني مع دعم GIMP.
- هل تتعامل مع حقلَي الدقة والنوع الأساسي؟
- نعم — يفكّ الفاحص ترميز كلمة النوع الأساسي (0 = RGB، 1 = تدرج رمادي، 2 = مفهرس) ولملفات v004+ كلمة الدقة (8-بت خطّي / غير خطّي / إدراكي، 16-بت صحيح أو نصف-عائم، 32-بت عائم، 64-بت مزدوج). تُعرَّف ملفات XCF عالية العمق من GIMP 2.10+ التي تستخدم 32-بت عائم داخليًا للتركيب بشكل صحيح.
المزيد من الصور