سؤال

أنا بحاجة لــ خلق ملف PSD الطبقات مع ImageMagick أو أي أداة سطر الأوامر الأخرى متوفرة على منصة Linux. منذ أن أحتاج إلى القيام بذلك على خادم Linux، لا يمكنني استخدام Scripting Photoshop.

يقوم الأمر ImageMagick أدناه بإنشاء ملف PSD بطبقة واحدة، حيث يتم وضع صورتين (هنا: Fractals Plasma) واحدا تحت آخر. (أستخدم ImageMagick 6.5.3-10 2009-07-31 Q16، الأحدث المتاحة في Macports.)

convert -size 100x100 plasma:fractal plasma:fractal -append out.psd

كيف أقوم بإنشاء ملف PSD حيث تكون كل صورة في طبقة خاصة بها، وطبقة واحدة مباشرة فوق آخر؟

أو هل هناك أي أداة سطر الأوامر أخرى تسمح لي أن أفعل هذا؟

تحديث: أي خيارات أخرى من خط الأوامر GIMP؟

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

المحلول

إذا لم تنجح ImageMagick، فأنا ننظر إلى خط قيادة GIMP.

أنشأت الأوامر التالية ملف PSD 2-Layer بالنسبة لي في وحدة التحكم التفاعلية:

> (gimp-image-new 200 200 0)
(1)
> (gimp-layer-new 1 200 200 0 "layer-1" 100 0)
(2)
> (gimp-layer-new 1 200 200 0 "layer-2" 100 0)
(3)
> (file-psd-save 0 1 0 "test.psd" "test.psd" 0 0)
> (gimp-image-add-layer 1 2 -1)
> (gimp-image-add-layer 1 3 -1)
> (file-psd-save 0 1 1 "test.psd" "test.psd" 0 0)

من شأنها أن يتم تحويلها إلى البرنامج النصي من النصوص (ملف .SCM) ويمكن تنفيذها من سطر الأوامر بشيء مثل هذا:

gimp -i -b '(your-script-name "test.psd" 200 200)' -b '(gimp-quit 0)'

نصائح أخرى

يمكنني استخدام خطوط الأوامر أدناه. لم أواجه أي مشكلة في فتح PSD الذي تم إنشاؤه في Photoshop، ولكن تظهر كل طبقة كطبقة خلفية، وعليك تحويلها إلى طبقة حقيقية أولا لتحرير طلب الطبقة.

هنا هو سطر الأوامر للنافذة. بالنظر إلى قائمة الصور (im1.xxx، im2.xxx إلخ، IM1 كونها الطبقة السفلية،) قائمة التسميات الخاصة بالطبقات ("Label1"، "Label2" ...):

convert ^ ( ^ -page +0+0 ^ -label "label1" ^ im1.xxx[0] ^ -background none ^ -mosaic ^ -set colorspace RGB ^ ) ^ ( ^ -page +0+0 ^ -label "label2" ^ "im2.xxx"[0] ^ -background none ^ -mosaic ^ -set colorspace RGB ^ ) ^ ( ^ -clone 0--1 ^ -background none ^ -mosaic ^ ) ^ -alpha Off ^ -reverse ^ "out.psd"

وهذا هو، لكل طبقة، لديك شيء من هذا القبيل

( ^ -page +0+0 ^ -label "optional_label" ^ im1.xxx[0] ^ -background none ^ -mosaic ^ -set colorspace RGB ^ )

تسمية / اسم الطبقة اختيارية (إزالة -label إذا لم يكن هناك.) [0] في im1.xxx[0] يسترجع الصورة الأولى في ملف الصورة، في حالة وجود صورة مصغرة في exif.

على UNIX / OSX، عليك حماية الأقواس عن طريق الخلفية، وتغيير أحرف استمرارية الخط أيضا إلى \:

\( \ -page +0+0 \ -label "optional_label" \ im1.xxx[0] \ -background none \ -mosaic \ -set colorspace RGB \ \)

إذا كانت أسماء الصور تحتوي على حرف خاص، فيمكنك حمايتها " (على سبيل المثال "c:\my im1.png") دون أي مشكلة.

يمكنك استخدام -adjoin للجمع بين تسلسل الصور.

convert -size 100x100             \
        -alpha set plasma:fractal \
        -alpha set plasma:fractal \
        -adjoin                   \
        out.psd
  • هناك حاجة إلى قنوات ألفا لرموز PSD.
  • ترتيب الصور هو الطبقة السفلية إلى الطبقة العليا.
  • هناك الكثير من مشكلات التوافق مع Photoshop و Gimp اعتمادا على الإعدادات.

استخدام:

  • Imagemagick 6.5.4-6.
  • فوتوشوب CS2.

إليك بعض الروابط المفيدة لك:

الرابط الثاني هو استخدام مع بي أتش بي, ، لكنه ينفذ ImageMagick، فقط استخدام الأوامر، وليس كل شيء بي أتش بي بناء جملة، فقط خط exec. الشفرة.

آمل أن أساعدك!

وأنا أتفق مع Jon Galloway، وحدة التحكم Gimp هي خيار أفضل. هنا هو بلدي النصي:

(define (pngtopsd width height png-paths psd-path)
(define (add-layers image png-paths) 
    (if (null? png-paths) 0 
        (let* 
            ((png (car png-paths))
            (new-layer (car (gimp-file-load-layer 0 image (car png)))))

            (gimp-image-insert-layer image new-layer 0 -1)
            (gimp-item-transform-2d new-layer 0 0 1 1 (cadr png) (caddr png) (cadddr png))
            (add-layers image (cdr png-paths))
        )
    ))

(let* 
    ((png (car png-paths))
    (image (car (gimp-file-load 1 (car png) (car png))))
    (drawable (car (gimp-image-get-active-layer image))))

    (gimp-image-resize image width height 0 0)
    (gimp-item-transform-2d drawable 0 0 1 1 (cadr png) (caddr png) (cadddr png))       
    (add-layers image (cdr png-paths))
    (file-psd-save 0 image drawable psd-path psd-path 1 0)
    (gimp-image-delete image)
))

تحتاج فقط وضع هذا البرنامج النصي في ملف باسم "pngtopsd.scm" داخل دليل GIMP الخاص بك "النصي" ("C: Program Files Gimp 2 Share Gimp 2.0 Scripts " بالنسبة ل Windows) ويمكنك إنشاء PSD الطبقات من قائمة صور PNG مع التحول (الترجمة أو الدوران) لكل طبقة. عينة الاستخدام:

gimp-console-2.8.exe -i -b              ^
  "(pngtopsd (list                      ^
   (list \"c:/../1.png\" 0 500 500)     ^
   (list \"c:/.../2.png\" 0.7 200 1000) ^
   (list \"c:/.../3.jpg\" -0.5 1000 0)) ^
   \"c:/.../result.psd\")"

هناك (list \"c:/.../2.png\" 0.7 200 1000) يعني:

  • 0.7 هو زاوية الدوران للصورة (في الرضيات)
  • 200 1000 هو X و Y تحول على صورة

يمكنك إنشاء PSD الطبقات مع ImageMagick، ولكن لاحظ أن الصورة الأولى تستخدم بالفعل كصورة المعاينة (أي مركب لجميع الطبقات).

convert -size 100x100 plasma:fractal plasma:fractal plasma:fractal out.psd

سوف تنشئ 2 طبقة مديرية الأمن العام.

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