2009-03-31 5 views
7

저는 다국어 웹 사이트를 운영하고 있으므로 CSV 소스의 psd 파일에서 텍스트 레이어를 업데이트하는 프로세스를 자동화해야합니다.Photoshop을 자동화하여 파일의 텍스트를 삽입하십시오.

변경된 너비로 인해 psp에 글리치가있을 수 있지만 어쨌든 문서 내에 텍스트가 있어야 도움이 될 것입니다.

내 옵션에는 어떤 것이 있습니까?

편집 :

는 Murmelschlurmel는 작업 솔루션을 제공합니다. 다음은 Adobe 문서에 대한 링크입니다.

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

csv로 파일의 형식은 너무 좋은되지 않습니다 : 각 변수의 열이 필요합니다. 각 변수에 대해 한 행을 예상합니다. 그것은 움라우트와 함께 작동

(ä, ö 등)

편집 1 :

또 다른 해결책은 포토샵을 자동화하는 COM을 사용하는 것입니다. 변경된 텍스트가 필요한 두 개의 템플릿 (버튼)이 있다면 멋지 네요. 파이썬으로 시작하는 스크립트가 있습니다.

당신은 엑셀이 열이 파일이 필요합니다 : TemplateFileName, TargetFileName, TargetFormat, 텍스트 (즉 template.psd, 단추 1, GIF, NiceButton). 시트의 첫 번째 행이 사용되지 않습니다. psp 템플릿에는 textlayer가 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이라는 개념이 있지만, 이것이 내가 볼 수있는 한, 이것은 Photoshop에서 단어의 사용과 관련이 없다는 것을 알 수 있습니다.

이> 변수> 정의 포토샵에서 이미지를로드하고 이미지와 변수를 정의 : 여기

진행하는 방법입니다.

그런 다음 CSV를 Photoshop에서 읽을 수있는 형식으로 변환하십시오. 탭으로 구분 된 텍스트에 대한 최상의 경험이있었습니다.

마지막으로 Photoshop에서 텍스트 파일을 이미지> 변수> 데이터 세트으로로드하고 Photoshop에서 모든 반복을 저장하도록하십시오.

처음 시도했을 때 Photoshop 도움말 파일에 세부 정보가 충분하지 않은 것으로 나타났습니다. 나는 포토샵 "데이터 세트"에 대한 인터넷을 검색하고 좋은 자습서를 발견했다. 이건 digitaltutors입니다.

+1

이 비디오가 도움이 되었습니까? http://www.youtube.com/watch?v=i9Ms34nYRFI –

+1

데이터 기반 디자인에 대한 자습서 : http://roderickvella.wordpress.com/2014/12/30/photoshop-data -driven-graphics / – Vince

1

조금 벗어날 수 있지만 정확히 동일한 문제를 처리하기 위해 Adobe AlterCast/Grphics 서버를 사용했습니다.

또한 텍스트 GIF/JPG 이미지 인 경우 Python + PIL (Python Imaging Library)을 사용할 수 있습니다. 다음은 샘플 코드 (설치 굴림 오사카 글꼴 윈도우 OS에서 작동합니다.)

#!/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

완벽한 솔루션처럼 들립니다. 그러나 제품이 단종되었습니다. (성은 Adobe Graphics Server - http://www.adobe.com/products/server/graphics/). 이미지 처리는 나에게 적합하지 않다. 왜냐하면 나는 PSP 관련 efects를 찾았 기 때문이다. –

관련 문제