سؤال

لدي ملف PSD متعدد الطبقات، مع وجود طبقة واحدة محددة وهي عبارة عن نص غير نقطي.أحاول اكتشاف طريقة يمكنني من خلالها استخدام برنامج bash/Perl/python/أي شيء آخر:

  1. تحميل PSD
  2. تحرير النص في الطبقة المذكورة
  3. تسوية جميع الطبقات في الصورة
  4. احفظه بتنسيق مناسب للويب مثل PNG أو JPG

فكرت على الفور ImageMagick, ، ولكن لا أعتقد أنه يمكنني تحرير طبقة النص من خلال المراسلة الفورية.إذا تمكنت من إنجاز الخطوتين الأوليين بطريقة برمجية أخرى، فيمكنني دائمًا استخدام ImageMagick لتنفيذ الخطوتين الأخيرتين.

بعد بضع ساعات من البحث على Google والبحث في CPAN وPyPI، لم أجد شيئًا واعدًا بعد.هل أحد عنده نصيحة أو فكرة حول الموضوع؟

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

المحلول

إذا كنت لا ترغب في استخدام AppleScript أو JavaScript أو VBScript المدعوم رسميًا، فهناك أيضًا إمكانية القيام بذلك في Python.وهذا موضح في المقال البرمجة النصية بالفوتوشوب باستخدام لغة بايثون, ، والذي يعتمد على واجهة Photoshop COM.

لم أجربه، فإذا لم ينجح معك:إذا تم الحفاظ على النص الخاص بك بعد التحويل إلى SVG ثم يمكنك ببساطة استبدالها بأي أداة تريدها.وبعد ذلك قم بتحويله إلى PNG (على سبيل المثال.بواسطة inkscape --export-png=...).

نصائح أخرى

هل فكرت في فتح الصورة وتحريرها في برنامج GIMP؟يتمتع بدعم جيد جدًا لملفات PSD، ويمكن كتابته بعدة لغات.

يعتمد اختيار النظام الذي تستخدمه جزئيًا على نظامك الأساسي، ولم تكن واجهة Perl تعمل على نظام التشغيل Windows آخر ما أعرفه.أعتقد أن المخطط مدعوم في جميع المنافذ.

الطريقة الوحيدة التي يمكنني التفكير بها لأتمتة تغيير النص داخل ملف PSD هي استخدام بديل يعتمد على regex.

  1. قم بإنشاء صورة بسيطة جدًا في Photoshop، ربما بخلفية بيضاء وطبقة نص، مع كون النص بطول معروف.
  2. ابحث في الملف عن النص الخاص بك، وباستخدام محرر سداسي عشري، ابحث في مكان قريب عن طول النص (الذي قد يكون أو لا يكون جزءًا من تنسيق الملف).
  3. حاول تغيير النص، أولاً إلى سلسلة بنفس الطول، ثم إلى شيء أقصر/أطول.
  4. افتحه في Photoshop بعد كل تغيير لترى ما إذا كان الملف تالفًا.

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

أما بالنسبة للتحويل إلى png فأنا في حيرة من أمري.إذا كان النص البرمجي البديل بلغة بايثون، فقد تتمكن من القيام بذلك باستخدام مكتبة تصوير بايثون (PIL، والذي يبدو أنه يدعمه)، ولكن بخلاف ذلك قد يتعين عليك فقط فتح Photoshop لإجراء التحويل.مما يعني أنه ربما لن يكون من المفيد تغيير النص بشكل عملي في المقام الأول.

يمكنك استخدام Photoshop نفسه للقيام بذلك باستخدام OLE.ستحتاج إلى تثبيت Photoshop بالطبع.Win32::OLE في Perl أو وحدة مماثلة في Python.يرى http://www.adobe.com/devnet/photoshop/pdfs/PhotoshopScriptingGuide.pdf

إذا كنت تريد تشغيل Photoshop تلقائيًا، فيجب عليك استخدام أنظمة البرمجة النصية الخاصة بـ Photoshop.لا أعتقد أن هناك طريقة للتغلب على ذلك.

بالنظر إلى المشكلة بطريقة مختلفة، هل يمكنك التصدير من Photoshop إلى تنسيق آخر يدعم الطبقات، مثل PNG، والذي يمكن تحريره بواسطة ImageMagick؟

يمكنك أيضًا تجربة ذلك باستخدام Node.js.انا صنعت أداة سطر الأوامر PSD

تثبيت أمر من سطر واحد (يحتاج إلى تثبيت NodeJS/NPM)

npm install -g psd-cli

يمكنك بعد ذلك استخدامه عن طريق الكتابة في المحطة الطرفية الخاصة بك

psd myfile.psd -t

يمكنك التحقق من الكود لاستخدامه من برنامج نصي لعقدة أخرى أو استخدامه من خلال Shell الخاص بك من برنامج Bash/Perl/أيًا كان البرنامج النصي الآخر.

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