Proprietà dei caratteri del livello testo nel file PSD: è possibile eseguire l'ispezione senza Photoshop?

2

Voglio ispezionare (e solo che, senza modificare questo livello) quali font, dimensioni, colori, ecc. sono stati usati in un dato livello di testo nel file PSD creato con Photoshop. È fattibile senza Photoshop.app? Pixelmator sembra non essere in grado di farlo, lo stesso con Acorn. Qualcos'altro che potrei provare?

    
posta piobyz 06.07.2011 - 12:00
fonte

1 risposta

1

Per dati piuttosto grezzi, prova a salvarlo come, ad es. psdtext.py

#!/usr/bin/python

import sys, re

input = sys.argv[1]

# This write_title function is just for vanity and easier manual searching
def write_title(num):
  filler = 97
  if num < 10:
    filler2 = filler - 25
  elif num < 100:
    filler2 = filler - 26
  else:
    filler2 = filler - 27
  print("\n" * 2)
  print("#" * filler)
  print("#" * filler)
  print("#" * 11 + " Text layer " + str(num) + " " + "#" * filler2)
  print("#" * filler)
  print("#" * filler)
  print("\n" * 2)  

def psd_texts(input):
  t = x = 0
  for line in open(input, 'r'):
    if re.search("^\s+/Text\s+.*", line):
      x = 1
      t += 1
      write_title(t)
      print(line.rstrip('\n'))
    elif x == 1:
      if "warp" in line:
        x = 0
      elif ">>" not in line and "<<" not in line:
        print(line.rstrip('\n')) 

if __name__ == "__main__":
  psd_texts(input)

Quindi rendilo eseguibile: $ chmod a+x psdtext.py

Salva l'output come file *: $ ./psdtext.py my_file_with_text_layers.psd > textinfo.txt

Apri in un editor: $ open textinfo.txt

Ad esempio: puoi cercare /Text nel tuo editor per scorrere il contenuto del testo di diversi livelli, o cercare /FontSet per scorrere i caratteri (il primo font elencato è quello utilizzato dal layer, altri sono fallback)

So che l'output è brutto, ma hey, contiene tutte le informazioni.

*) Non farei solo $ ./psdtext.py file.psd perché rovina visivamente il terminale - prova ad es. $ ./psdtext.py file.psd | less invece.

    
risposta data 06.07.2011 - 15:30
fonte