تحويل XCF والملفات الأخرى باستخدام سطر الأوامر مع GIMP؟
-
08-07-2019 - |
سؤال
إذا كان لدي ملف XCF (أو أي شخص آخر مدعوم من GIMP) ، فكيف يمكنني تحويله إلى PNG على سبيل المثال ، على سبيل المثال ، PNG للعرض أو معالجة مزيد من المعالجة؟
المحلول
لقد تأخرت بضع سنوات ، لكنني اعتقدت أنني سأضيف ما أعتقد أنه أفضل حل: هناك مجموعة أدوات تسمى xftools (في أوبونتو ، apt-get install xcftools
) ، التي لها فائدة تسمى xcf2png
هذا يفعل هذه الوظيفة تماما.
xcf2png image.xcf -o image.png
هذا أفضل بكثير من أ) استخدام ImageMagick (كما قلت في تعليق أعلاه معطلة بشكل فظيع) ، أو ب) باستخدام GIMP (التي لديها لغة نصية معقدة للغاية لتصدير صورة).
نصائح أخرى
اعتقد ImageMagick يجب أن تفعل ما تريد (وأكثر)
convert image.xcf image.png
يمكن العثور على حل جيد جدًا (وتفسيرات!) هنا. باختصار ، هناك مخطط تغذية نص Bash/lisp إلى gimp
#!/bin/bash
{
cat <<EOF
(define (convert-xcf-to-jpeg filename outfile)
(let* (
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))
)
(file-jpeg-save RUN-NONINTERACTIVE image drawable outfile outfile .9 0 0 0 " " 0 1 0 1)
(gimp-image-delete image) ; ... or the memory will explode
)
)
(gimp-message-set-handler 1) ; Messages to standard output
EOF
for i in *.xcf; do
echo "(gimp-message \"$i\")"
echo "(convert-xcf-to-jpeg \"$i\" \"${i%%.xcf}.jpg\")"
done
echo "(gimp-quit 0)"
} | gimp -i -b -
لكن انظر إلى الصفحة للقصة الكاملة. انه يستحق ذلك.
عدد قليل جدًا ، إن وجد ، بخلاف برامج GIMP تقرأ ملفات XCF. هذا حسب التصميم من مطوري GIMP ، لا يتم توثيق التنسيق أو دعمه حقًا كتنسيق ملف للأغراض العامة.
ومع ذلك ، انظر إلى استخدام GIMP نفسه ، باستخدام وسيط سطر الأوامر (وخاصة --batch
اختيار).
تعديل: يبدو كما لو أن ImageMagick يدعم XCF ، لذلك ربما يكون هذا طريقًا أسهل إذا كان الدعم يبدو جيدًا بما فيه الكفاية. لم أختبرها ، والوثائق لا تقول الكثير. سأكون حذرا بعض الشيء.
إذا كنت ترغب في تحويل الصور. xcf بالجملة إلى .png ، فقد تجد هذا البرنامج النصي المورد أكثر فائدة:
#! /bin/bash -peux
exec xcf2png $1 -o ${1%.xcf}.png
احفظه في مكان ما على طريقك xcftopng
(لاحظ ال to
بدلاً من 2
) وتسميها مثل ذلك:
ls *.xcf|xargs -l xcftopng