2009-03-31 12 views
7

से टेक्स्ट सम्मिलित करने के लिए स्वचालित फ़ोटोशॉप मेरे पास एक बहुभाषी वेबसाइट है और एक सीएसवी-स्रोत से पीएसडी-फाइलों में टेक्स्टलेयर अपडेट करने की प्रक्रिया को स्वचालित करने की आवश्यकता है।फ़ाइल

मुझे पता है कि बदली चौड़ाई के कारण पीएसपी में ग्लिच हो सकते हैं, लेकिन फिर भी यह दस्तावेज़ों के अंदर पाठ रखने में बहुत मदद करेगा।

मेरे विकल्प क्या हैं?

संपादित करें:

Murmelschlurmel एक काम समाधान है। एडोब दस्तावेज का लिंक यहां दिया गया है।

http://livedocs.adobe.com/en_US/Photoshop/10.0/help.html?content=WSfd1234e1c4b69f30ea53e41001031ab64-740d.html

सीएसवी फ़ाइल का स्वरूप इतना अच्छा नहीं है: आप प्रत्येक चर के लिए एक कॉलम की जरूरत है। मैं प्रत्येक चर के लिए एक पंक्ति की उम्मीद करेंगे।

यह ऊमलायूट के साथ काम करता (ä, ö आदि)

संपादित करें 1:

एक अन्य समाधान स्वचालित करने के लिए फ़ोटोशॉप कॉम उपयोग करने के लिए है। अच्छा है अगर आपके पास कुछ टेम्पलेट्स (बटन) हैं जिन्हें बदले गए पाठ की आवश्यकता है। यहां मेरी लिपि पाइथन है जो आपको स्टार्टेट मिल सकती है।

आप Excel कॉलम के साथ दायर की आवश्यकता है: TemplateFileName, TargetFileName, TargetFormat, पाठ (यानी template.psd, BUTTON1, GIF, NiceButton)। शीट की पहली पंक्ति का उपयोग नहीं किया जाता है। पीएसपी टेम्पलेट में केवल 1 टेक्स्टलेयर होना चाहिए और इसमें लेयरग्रुप नहीं हो सकते हैं।

import win32com.client 
import xlrd 
spreadsheet = xlrd.open_workbook("text_buttons.xls") 
sheet = spreadsheet.sheet_by_index(0) 

psApp = win32com.client.Dispatch("Photoshop.Application") 
jpgSaveOptions = win32com.client.Dispatch("Photoshop.JPEGSaveOptions") 
jpgSaveOptions.EmbedColorProfile = True 
jpgSaveOptions.FormatOptions = 1 
jpgSaveOptions.Matte = 1 
jpgSaveOptions.Quality = 1 

gifSaveOptions = win32com.client.Dispatch("Photoshop.GIFSaveOptions") 



for rowIndex in range(sheet.nrows): 
    if(rowIndex > 0): 
     template = sheet.row(rowIndex)[0].value 
     targetFile = sheet.row(rowIndex)[1].value 
     targetFileFormat = sheet.row(rowIndex)[2].value 
     textTranslated = sheet.row(rowIndex)[3].value 
     psApp.Open(r"D:\Design\Produktion\%s" % template) 
     doc = psApp.Application.ActiveDocument 

     for layer in doc.Layers: 
      if (layer.Kind == 2): 
       layer.TextItem.Contents = textTranslated 
       if(targetFileFormat == "gif"): 
        doc.SaveAs(r"D:\Design\Produktion\de\%s" % targetFile, gifSaveOptions, True, 2) 
       if(targetFileFormat == "jpg"): 
        doc.SaveAs(r"D:\Design\Produktion\de\%s" % targetFile, jpgSaveOptions, True, 2) 

उत्तर

21

आप उपयोग कर सकते हैं "डेटा संचालित डिजाइन" यह करने के लिए है। कंप्यूटर विज्ञान में data driven design की एक अवधारणा भी है, लेकिन जहां तक ​​मैं इसे देख सकता हूं फ़ोटोशॉप में शब्द के उपयोग से संबंधित नहीं है।

में फ़ोटोशॉप अपनी छवि को लोड और छवि के साथ अपने चर निर्धारित> चर> परिभाषित:

यहाँ कैसे आगे बढ़ना है।

फिर अपने सीएसवी को प्रारूप में परिवर्तित करें फ़ोटोशॉप पढ़ सकते हैं। मेरे पास टैब डिलीमिट किए गए पाठ के साथ सबसे अच्छे अनुभव थे।

अंततः छवियों> चर> डेटा सेट के साथ फ़ोटोशॉप में टेक्स्ट फ़ाइल लोड करें और फ़ोटोशॉप को सभी पुनरावृत्तियों को सहेजने दें।

जब मैंने पहली बार कोशिश की, तो मैंने पाया कि फ़ोटोशॉप सहायता फ़ाइल पर्याप्त विवरण प्रदान नहीं करती है। मैंने फ़ोटोशॉप "डेटा सेट" के लिए इंटरनेट की खोज की और कुछ अच्छे ट्यूटोरियल पाए, उदा। यह digitaltutors से है।

+1

मुझे यह वीडियो भी उपयोगी पाया गया: http://www.youtube.com/watch?v=i9Ms34nYRFI –

+1

डेटा संचालित डिज़ाइन के बारे में ट्यूटोरियल: http://roderickvella.wordpress.com/2014/12/30/photoshop-data संचालित-ग्राफिक्स / – Vince

1

यह बहुत अधिक दूर छोटा सा हो सकता है, लेकिन मैं ठीक उसी मुद्दे को सुलझाने वाली एडोब AlterCast/Grphics सर्वर का इस्तेमाल किया है।

अगर यह सिर्फ टेक्स्ट जीआईएफ/जेपीजी छवि है, तो आप पाइथन + पीआईएल (पायथन इमेजिंग लाइब्रेरी) का उपयोग कर सकते हैं। यहाँ एक नमूना कोड (स्थापित एरियल और ओसाका फोंट के साथ विंडोज ओएस पर काम करता है।)

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import ImageFont, ImageDraw, Image 
#font = ImageFont.truetype("/usr/share/fonts/bitstream-vera/Vera.ttf", 24) 
#font = ImageFont.truetype("futuratm.ttf", 18) 
font = ImageFont.truetype("arial.ttf", 18) 
im = Image.new("RGB", (365,20), "#fff") 
draw = ImageDraw.Draw(im) 
draw.text((0, 0), "Test Images", font=font, fill="#000") 
im.save("TestImg_EN.gif", "GIF") 


font = ImageFont.truetype("osaka.ttf", 18) 
im = Image.new("RGB", (365,20), "#fff") 
draw = ImageDraw.Draw(im) 
draw.text((0, 0), u"テストイメージ", font=font, fill="#000") 
im.save("TestImg_JP.gif", "GIF") 
+0

यह सही समाधान की तरह लग रहा था। लेकिन उत्पाद बंद कर दिया गया है। (अंतिम नाम एडोब ग्राफिक्स सर्वर - http://www.adobe.com/products/server/graphics/) था। छवि प्रसंस्करण मेरे लिए व्यवहार्य नहीं है, क्योंकि मैं पीएसपी - विशिष्ट दोषों को नंगा करता हूं। –