Trova tutti i caratteri utilizzati in un file Photoshop


54

Ho questo .psd(file Photoshop) e sto provando a convertirlo in HTML e CSS.

L'unica cosa che non riesco a determinare è quale font hanno usato in .psd

Come posso sapere quali caratteri sono stati usati nel file Photoshop?


A partire da CC2018, 2 degli script seguenti e il plugin jsx sono interrotti. Ho commentato specificamente per ciascuno.
Disegnò il

Risposte:


63

Dipende da come si desidera estrarre le informazioni.

Per sezione o area di testo

Seleziona lo strumento Testo ( icona a T con serif) e fai clic sull'area di testo per modificarlo. Mostrerà quale tipo di carattere viene utilizzato nella finestra Carattere.

Tutti i caratteri usati a colpo d'occhio

  1. Salvare o esportare il documento immagine come PDF
  2. Apri la versione PDF in Adobe Reader
  3. Seleziona File → Proprietà → Caratteri

Questo elencherà tutti i caratteri incorporabili utilizzati nel file PSD, a condizione che tu possa incorporarli.

Caratteri mancanti

Nello strumento Carattere, vai al menu a discesa di selezione dei caratteri. Alla fine dell'elenco saranno presenti i caratteri utilizzati nell'immagine ma mancanti dal sistema. Questi saranno in genere disattivati.

Immagini rasterizzate

Se vedi delle immagini rasterizzate di cui hai bisogno del volto del carattere, ti consigliamo di esportare solo quella sezione come un'immagine chiara e autonoma e utilizzare un servizio come What the Font per determinare il carattere.


23

Salvare questo script come nuovo file nella cartella Photoshop> Preimpostazioni> Script. Assegnalo al nome che preferisci, ad esempio "Rileva Fonts.jsx"

var p = new ActionReference();

function arrayUnique(a){
    var t = []
        i = a.length;

    while(i--) {
        var f = false,
        n = t.length;

        while (n--) {
            if(a[i] === t[n]) {
                f = true;
            }
        }

        if(!f) {
            t.push(a[i]);
        }
    }
    return t;
}

function findFonts() {
    p.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );

    var c = executeActionGet(p).getInteger(charIDToTypeID('NmbL'))+1,
        fonts = [];

    while(c--) {
        var r = new ActionReference(),
            descLayer,
            layerStyles,
            countStyles;

        r.putIndex( charIDToTypeID( 'Lyr ' ), c );

        try {
            descLayer = executeActionGet(r);
        } catch (e) {
            continue;
        }

        if(!descLayer.hasKey(stringIDToTypeID( 'textKey' ))) continue;

        layerStyles = descLayer.getObjectValue(stringIDToTypeID('textKey')).getList(stringIDToTypeID('textStyleRange'));
        countStyles = layerStyles.count;

        while(countStyles--) {
            var n = layerStyles.getObjectValue(countStyles).getObjectValue(stringIDToTypeID('textStyle')).getString(stringIDToTypeID('fontPostScriptName'));
            fonts.push(n);
        }
    }

    return arrayUnique(fonts).sort();
}

if (documents.length) {
    var d = findFonts();
    alert(d.length +' fonts found\n'+d.join('\n'));
} else {
    alert('No fonts used in the active document.',);
}

inserisci qui la descrizione dell'immagine


1
+500000 punti. Incredibile.
Half Crazed


Per scrivere il testo in uso clipboard questa risposta: stackoverflow.com/a/13983268/1578857
Dima Kurilo

(Photoshop CC2018) Errore 8500: la proprietà richiesta non esiste. Riga 53: var n = layerStyles.getObjectValue (countStyles) .getObjectValue (stringIDToTypeID ('textStyle')). GetString (stringIDToTypeID ('fontPostScriptName'));
Disegnò il

@Drew Sto per inviare una risposta aggiornata con una versione fissa dello script
Agrath

8

Il formato del file PSD è documentato da Adobe: puoi leggere come memorizza le informazioni sui caratteri.

È quindi possibile esaminare un dump esadecimale del file e utilizzare la specifica del formato file per trovare i caratteri.

In alternativa, i nomi dei caratteri dovrebbero essere visibili nell'output stringsdell'utilità trovata sui sistemi Linux / Unix.


2
+1: ho trovato la stessa soluzione. Per qualche motivo GIMP non ha importato correttamente il PSD e non sapevo quale font fosse usato. Ho analizzato il file PSD in un editor HEX per trovarlo (Cerca: "Font" come TEXT). Editor consigliato: "benedici".
lepe

5

Questo è in realtà molto facile da fare usando gli script PS, che possono scorrere i livelli del tuo PSD e estrarre i dati del livello di testo.

Ultimamente ho sperimentato uno script basato su JavaScript per sovrapporre le informazioni sui caratteri direttamente ai componenti forniti agli sviluppatori. Non è finito, ma se c'è ancora interesse (vedo che è piuttosto vecchio) posso mettere su una versione rapida e sporca che fa apparire semplicemente i caratteri usati in una finestra.

AGGIORNAMENTO: ho messo insieme una versione approssimativa ma funzionante "lite" della sceneggiatura che sto sviluppando. Sentiti libero di contribuire - https://github.com/davidklaw/completer . Per chi non ha familiarità con gli script, basta prendere il file di script e metterlo nella cartella Presets / Scripts di PS e sarà disponibile in File -> Script.


La domanda potrebbe essere vecchia, ma ha quasi 6.000 visualizzazioni. Se potessi fornire una sceneggiatura, sarebbe molto apprezzato! Benvenuto a Super User, comunque!
Slhck,

Buona chiamata. Il progetto GitHub open source è attivo. Se qualcuno ha familiarità con JavaScript di base dovrebbe sentirsi come a casa.
David,

caspita, in realtà funziona abbastanza bene: D (y)!
Ejaz,

4

Modo semplice e veloce per trovare font mancanti

  1. Windows -> Carattere Verrà visualizzata una piccola casella con le informazioni sui caratteri.

  2. Seleziona il nome del menu a discesa e scorri verso il basso fino alla fine.

  3. Noterai l'elenco dei caratteri mancanti in colore grigio chiaro alla fine dell'elenco dei caratteri.

inserisci qui la descrizione dell'immagine

Da: http://www.bala-krishna.com/how-to-find-fonts-used-in-psd-file/


Esistono numerosi modi per abilitare quel pannello: un altro è Tipo -> Pannelli -> Carattere.
martixy

3

Se il testo è già stato rasterizzato, il modo più semplice sarebbe ritagliare l'area con il carattere che si desidera identificare, salvarlo come .png e caricarlo su WhatTheFont , dove dovrebbe essere in grado di dirti di cosa si tratta, a meno che è oscuro o su misura.

Identifont è un altro sito che è possibile utilizzare, in cui si descrivono le caratteristiche del carattere tipografico.


il testo non è rasterizzato, il che significa che è in un livello separato.
Dave,

2
@Dave: se il testo è ancora modificabile, tutto ciò che devi fare è selezionarlo e vedere cosa appare nel menu a discesa dei caratteri o nella tavolozza delle informazioni. Questo è davvero ovvio!
paradroid

1

Vorrei fare uno scatto del testo che ti serve (preferibilmente ingrandito) e utilizzare WhatTheFont per avere qualche idea . (Non dovrebbe essere mostrato il carattere tipografico quando apri il PSD e selezioni il rispettivo testo?)

E, naturalmente, se non è un carattere sicuro per il web, dovrai trovare un modo appropriato per sostituirlo o fornire uno stack di fallback.



1

Sulla base della risposta originale di David (DetectFonts.jsx), ho modificato lo script per risolvere il problema segnalato da Drew nei commenti: Trova tutti i caratteri utilizzati in un file Photoshop .

Segui le istruzioni originali ma usa invece questo corpo di script: l'unica differenza sono alcuni controlli nulli (presumibilmente una differenza di versione di Photoshop o qualcosa a che fare con dati mancanti su determinati tipi di oggetti, probabilmente designer o specifici del sistema operativo)

Inoltrerò anche una richiesta pull a https://github.com/dcondrey/DetectFontsinPSD

var p = new ActionReference();

function arrayUnique(a) {
    var t = []
    i = a.length;

    while (i--) {
        var f = false,
            n = t.length;

        while (n--) {
            if (a[i] === t[n]) {
                f = true;
            }
        }

        if (!f) {
            t.push(a[i]);
        }
    }
    return t;
}

function findFonts() {
    p.putEnumerated(charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));

    var c = executeActionGet(p).getInteger(charIDToTypeID('NmbL')) + 1,
        fonts = [];

    while (c--) {
        var r = new ActionReference(),
            descLayer,
            layerStyles,
            countStyles;

        r.putIndex(charIDToTypeID('Lyr '), c);

        try {
            descLayer = executeActionGet(r);
        } catch (e) {
            continue;
        }

        if (!descLayer.hasKey(stringIDToTypeID('textKey'))) continue;

        layerStyles = descLayer.getObjectValue(stringIDToTypeID('textKey')).getList(stringIDToTypeID('textStyleRange'));
        if(!layerStyles) continue;

        countStyles = layerStyles.count;

        while (countStyles--) {
            var textStyle = layerStyles.getObjectValue(countStyles).getObjectValue(stringIDToTypeID('textStyle'));
            if(!textStyle || !textStyle.hasKey(stringIDToTypeID('fontPostScriptName'))) continue;

            var n = textStyle.getString(stringIDToTypeID('fontPostScriptName'));
            fonts.push(n);
        }
    }

    return arrayUnique(fonts).sort();
}

if (documents.length) {
    var d = findFonts();
    alert(d.length + ' fonts found\n' + d.join('\n'));
} else {
    alert('No fonts used in the active document.');
}

0

Apri Photoshop. Vai a Windows »Carattere . Apparirà una piccola scatola. Basta selezionare il livello di testo e la casella indicherà la famiglia di caratteri, la dimensione, ecc.



0

Lo sviluppatore mi ha chiesto quasi la stessa cosa di cui avevi bisogno. Mi è venuta in mente la modifica di semplici script, per esportare le proprietà dei livelli (testo, nome del carattere, dimensione del carattere, colore del carattere) di cui hai bisogno durante lo sviluppo, in un singolo file txt (dovrebbe funzionare su macchine Windows).

Basta salvarlo come "ExportTexts.js" e inserirlo in Adobe Photoshop> Preimpostazioni> Script.

Successivamente, esegui (o riavvia) Photoshop ed esegui script (File -> Script -> ExportTexts). Assicurati anche di separare tutti i livelli prima di farlo. Il file esportato dovrebbe trovarsi nella stessa directory del file psd.

if (documents.length > 0)
{
    var docRef = activeDocument;
    CurrentFolder = activeDocument.path;
    var outputFile = new File(CurrentFolder + "/" + activeDocument.name + "fonts.txt" );
    outputFile.open("w");
    for (var i = docRef.layers.length-1 ; i >=0 ; i--)
    {
        docRef.activeLa`enter preformatted text here`yer = docRef.layers[i]
        if (docRef.activeLayer.kind == LayerKind.TEXT)
        {
            outputFile.write( 
            docRef.activeLayer.textItem.contents + "\n" + 
            docRef.activeLayer.textItem.font +"," +
            docRef.activeLayer.textItem.size +"," +
            docRef.activeLayer.textItem.color.rgb.hexValue  + "\n\n\n");
        }
    }
    outputFile.close();
    alert("Finished");
}
else
{
    alert("You must have at least one open document to run this script!");
}
docRef = null

La tua sceneggiatura è interrotta sulla linea 8
davidcondrey,

E sulla linea 12. Errore 8500, proprietà non esiste: outputFile.write (.
Drew

0

C'è un'estensione / pannello gratuito di Photoshop che può fare questo lavoro per te, Free Photoshop Font Detector ( http://www.layerhero.com/photoshop-font-detector/ ) e se vuoi raccogliere / copiare file di font dal sistema cartella, prova Photoshop Art Packer ( http://www.layerhero.com/photoshop-art-packer/ )


"Free Photoshop Font Detector" non è più disponibile come download gratuito e ora fa parte di una costosa estensione FontHero per $ 39 .
paulmz,

Nessuno di questi è disponibile. LayerHero è morto .. Sorprendentemente, puoi scaricare Font Detector dalla macchina WayBack: web.archive.org/web/20171211184218/http://www.layerhero.com/… Tuttavia non sono stato in grado di installarlo, né con Extension Manager di Anastasiy e Adobe ExMan.
Ha

0

C'è un'opzione nella scheda Livelli che ti consente di filtrare tutti i livelli per mostrare solo i caratteri. Devi selezionare ogni livello per vederli effettivamente ed è utile solo se hai bisogno di uno sguardo veloce a loro

Spero che possa aiutare qualcuno tre anni dopo che questo è stato chiesto.


0

Volevo conoscere i caratteri del documento insieme ai loro stili, dimensioni, colori, formattazione, ecc. Per lo sviluppo web e scopi CSS, quindi ecco cosa mi è venuto in mente:

  1. Fai clic sull'icona "T" nel pannello Livelli per filtrare / visualizzare solo i livelli di testo
  2. Maiusc + clic sinistro sul livello di testo più in alto nella palette Livelli
  3. Scorri fino in fondo alla palette Livelli e Maiusc + clic sinistro sul livello di testo in basso
  4. Fai clic con il pulsante destro del mouse sui livelli selezionati nella palette Livelli e scegli "Duplica livelli"
  5. In Documento di destinazione, selezionare Nuovo
  6. Vai al tuo nuovo documento che dovrebbe contenere tutti i livelli di testo
  7. Seleziona nuovamente tutti i livelli di testo (vedi i passaggi 2 e 3)
  8. Fare clic sull'icona della cartella nella parte inferiore della palette Livelli per creare tutti i livelli di testo in un gruppo
  9. Cambia il metodo di fusione del gruppo (il menu a discesa nella palette dei livelli) su "Normale"
  10. Fai clic con il tasto destro del mouse sul tuo nuovo gruppo
  11. Scegli "Copia CSS"
  12. Incolla in un documento e formatta il tuo elenco di stili secondo necessità!

-1

Per ottenere le informazioni sui caratteri da un file PSD puoi usare gli strumenti online se non puoi o non vuoi usare Photoshop (o se preferisci usare Gimp, che rasterizza i caratteri PSD).

Ad esempio puoi provare questo estrattore online di font html5 PSD "Ottieni font PSD".

Si tratta di un estrattore di informazioni sui caratteri PSD basato sul progetto Melitingice Github psd.js che non richiede il caricamento di file, che funziona localmente nella pagina del browser


Apre il file in javascript, senza inviarlo a un server, nella tua pagina del browser! Devi rilasciare il file per specificare il percorso del file ...
Giovazz89

Potresti voler rivelare qualsiasi affetto che hai con i progetti citati, anche se è gratuito.
Journeyman Geek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.