Trouver toutes les polices utilisées dans un fichier Photoshop


54

J'ai ceci .psd(fichier Photoshop) et j'essaye de le convertir en HTML et CSS.

La seule chose que je ne peux pas déterminer, c'est quelle police ils ont utilisée dans le .psd

Comment savoir quelles polices ont été utilisées dans le fichier Photoshop?


À partir de CC2018, 2 des scripts ci-dessous et le plug-in jsx sont cassés. J'ai commenté spécifiquement pour chacun.
Dessiné

Réponses:


63

Cela dépend de la façon dont vous voulez extraire les informations.

Par section ou zone de texte

Sélectionnez l'outil Texte ( icône T avec empreintes) et cliquez sur la zone de texte pour le modifier. Il montrera quelle police est utilisée dans la fenêtre Caractère.

Toutes les polices utilisées en un coup d'œil

  1. Enregistrer ou exporter le document image au format PDF
  2. Ouvrez la version PDF dans Adobe Reader
  3. Sélectionnez Fichier → Propriétés → Polices.

Ceci listera toutes les polices incorporables utilisées dans le fichier PSD, à condition que vous puissiez les incorporer.

Polices manquantes

Dans l'outil Caractère, accédez au menu déroulant de sélection de police. À la fin de la liste se trouvent les polices utilisées dans l’image mais absentes de votre système. Celles-ci seront généralement grisées.

Images rasterisées

Si vous voyez des images pixellisées dont vous avez besoin de la police, vous feriez mieux d’exporter uniquement cette section, en tant qu’image claire et autonome, et d’utiliser un service tel que What the Font pour déterminer la police.


23

Enregistrez ce script en tant que nouveau fichier dans votre dossier Photoshop> Paramètres prédéfinis> Scripts. Nommez-le comme vous voulez, par exemple "Detect 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.',);
}

entrez la description de l'image ici


1
+500000 points. Incroyable.
Demi Crazed


Pour écrire du texte dans le presse-papiers, utilisez cette réponse: stackoverflow.com/a/13983268/1578857
Dima Kurilo

(Photoshop CC2018) Erreur 8500: la propriété demandée n'existe pas. Ligne 53: var n = layerStyles.getObjectValue (countStyles) .getObjectValue (stringIDToTypeID ('textStyle')). GetString (stringIDToTypeID ('fontPostScriptName'));
Dessiné

@Drew Je suis sur le point de publier une réponse mise à jour avec une version corrigée du script
Agrath

8

Le format de fichier PSD est documenté par Adobe. Vous pouvez lire comment il stocke les informations relatives aux polices.

Vous pouvez ensuite examiner un fichier hexadécimal du fichier et utiliser la spécification de format de fichier pour rechercher les polices.

Sinon, les noms de police doivent être visibles dans la sortie de l' stringsutilitaire disponible sur les systèmes Linux / Unix.


2
+1: Je suis venu avec la même solution. Pour une raison quelconque, GIMP n'a pas importé correctement le fichier PSD et je ne savais pas quelle police il était utilisé. J'ai analysé le fichier PSD dans un éditeur HEX pour le trouver (Recherche: "Police" sous forme de texte). Editeur recommandé: "bénisse".
lepe

5

Cela est en fait très facile à faire en utilisant des scripts PS, qui peuvent parcourir les couches de votre PSD et extraire des données de couche de texte.

Récemment, j'ai expérimenté un script basé sur JavaScript pour superposer des informations de police directement sur des compositions livrées aux développeurs. Ce n'est pas fini mais s'il y a toujours un intérêt (je vois que c'est assez vieux), je peux mettre en place une version rapide et sale qui affiche simplement les polices utilisées dans une fenêtre.

UPDATE: J'ai mis au point une version "allégée" du script que je suis en train de développer. N'hésitez pas à contribuer - https://github.com/davidklaw/completer . Pour ceux qui ne sont pas familiarisés avec les scripts, prenez simplement le fichier de script et placez-le dans votre dossier PS Presets / Scripts. Il sera disponible sous Fichier -> Scripts.


La question est peut-être ancienne, mais elle compte près de 6 000 vues. Si vous pouviez fournir un script, ce serait très apprécié! Bienvenue sur Super User, au fait!
Slhck

Bon appel. Le projet Open-source GitHub est en cours. Si quelqu'un connaît le JavaScript de base, il doit se sentir chez lui.
David

wow cela fonctionne vraiment très bien: D (y)!
Ejaz

4

Un moyen rapide et facile de rechercher les polices manquantes

  1. Windows -> Caractère Une petite boîte de caractères s'affichera avec des informations sur les polices.

  2. Sélectionnez le nom de police déroulant et faites défiler jusqu'à la fin.

  3. Vous remarquerez la liste des polices manquantes en gris clair à la fin de la liste.

entrez la description de l'image ici

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


Il existe de nombreuses façons d’activer ce panneau: Une autre option est Type -> Panneaux -> Caractère.
martixy

3

Si le texte a déjà été pixellisé, le moyen le plus simple consiste à rogner la zone avec la police de caractères à identifier, à l'enregistrer au format .png et à le télécharger sur WhatTheFont , où il devrait pouvoir vous indiquer de quoi il s'agit, à moins que est obscure ou sur mesure.

Identifont est un autre site que vous pouvez utiliser, dans lequel vous décrivez les caractéristiques de la police de caractères.


le texte n'est pas pixellisé, ce qui signifie qu'il se trouve dans un calque séparé.
dave

2
@Dave: Si le texte est toujours éditable, tout ce que vous avez à faire est de le sélectionner et de voir ce qui apparaît dans le menu déroulant de la police ou dans la palette d'informations. C'est vraiment évident!
paradroid

1

Je voudrais prendre un cliché du texte dont vous avez besoin (de préférence zoomé ) et utiliser WhatTheFont pour obtenir des suppositions. (Le caractère ne devrait-il pas être affiché lorsque vous ouvrez le fichier PSD et sélectionnez le texte correspondant?)

Et bien sûr, si ce n'est pas une police Web sécurisée, vous devrez trouver un moyen approprié de la remplacer ou de créer une pile de secours.


1

Utiliser Creative Cloud Extract

Il listera toutes les polices utilisées (entre autres choses utiles).


On dirait que cela a du potentiel, mais il faut installer DreamWeaver ..
Drew

1

Sur la base de la réponse originale de David (DetectFonts.jsx), j'ai modifié le script pour résoudre le problème signalé par Drew dans les commentaires: Recherchez toutes les polices utilisées dans un fichier Photoshop .

Suivez les instructions d'origine, mais utilisez plutôt ce corps de script - la seule différence est quelques vérifications nulles (vraisemblablement une différence de version de Photoshop ou quelque chose à voir avec des données manquantes sur des types d'objet particuliers, probablement propres au concepteur ou au système d'exploitation)

Je vais également soumettre une demande d'extraction à l' adresse 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

Ouvrez Photoshop. Allez à Windows »Caractère . Une petite boîte va apparaître. Il suffit de sélectionner le calque de texte et la boîte vous indiquera la famille de police, la taille, etc.



0

Le développeur m'a demandé presque le même penser que vous aviez besoin. Je suis venu avec l'édition de script simple, pour exporter les propriétés de calque (texte, nom de police, taille de police, couleur de police) dont vous avez besoin lors du développement, dans un seul fichier txt (devrait fonctionner sur une machine Windows).

Sauvegardez simplement ceci comme "ExportTexts.js" et mettez-le dans Adobe Photoshop> Préréglages> Scripts.

Après cela, exécutez (ou redémarrez) Photoshop et exécutez le script (Fichier -> Scripts -> ExportTexts). Assurez-vous également de dissocier toutes les couches avant de procéder. Le fichier exporté doit se trouver dans le même répertoire que le fichier 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

Votre script est cassé sur la ligne 8
davidcondrey

Et sur la ligne 12. Erreur 8500, la propriété n'existe pas: outputFile.write (.
Drew

0

Il existe une extension / un panneau Photoshop gratuit qui peut effectuer ce travail pour vous, un détecteur de polices Photoshop gratuit ( http://www.layerhero.com/photoshop-font-detector/ ), et si vous souhaitez collecter / copier des fichiers de polices à partir du système. dossier, essayez Photoshop Art Packer ( http://www.layerhero.com/photoshop-art-packer/ )


Le "Détecteur de polices Photoshop gratuit" n’est plus disponible en téléchargement gratuit et fait maintenant partie d’une extension coûteuse FontHero pour 39 $ .
Paulmz

Aucun de ceux qui sont disponibles. LayerHero est mort .. Étonnamment, vous pouvez télécharger Font Detector à partir de la machine WayBack: web.archive.org/web/20171211184218/http://www.layerhero.com/… Cependant, je n'ai pas pu l'installer, ni avec Anastasiy Extension Manager, ni Adobe ExMan.
Drew

0

L'onglet Calques contient une option qui vous permet de filtrer tous les calques pour afficher uniquement les polices. Vous devez sélectionner chaque couche pour les voir et cela n’est utile que si vous avez besoin d’y jeter un coup d’œil

J'espère que cela aidera quelqu'un trois ans après la demande.


0

Je souhaitais connaître les polices de document ainsi que leurs styles, tailles, couleurs, formatage, etc. à des fins de développement Web et de CSS, voici donc ce que je propose:

  1. Cliquez sur l'icône "T" dans le panneau Calques pour filtrer / afficher uniquement les calques de texte.
  2. Maj + clic gauche sur le calque de texte le plus haut dans la palette Calques
  3. Faites défiler jusqu'en bas de la palette Calques et maintenez les touches Maj + clic gauche enfoncées dans le calque de texte inférieur.
  4. Faites un clic droit sur les calques sélectionnés dans la palette Calques et choisissez "Dupliquer les calques".
  5. Sous Document de destination, sélectionnez Nouveau.
  6. Accédez à votre nouveau document qui devrait contenir tous vos calques de texte.
  7. Sélectionnez à nouveau tous les calques de texte (voir les étapes 2 et 3).
  8. Cliquez sur l'icône de dossier en bas de la palette Calques pour regrouper tous les calques de texte.
  9. Changez le mode de fusion du groupe (la liste déroulante dans la palette des calques) sur "Normal".
  10. Clic droit sur votre nouveau groupe
  11. Choisissez "Copier CSS"
  12. Collez dans un document et formatez votre liste de styles selon vos besoins!

-1

Pour obtenir les informations sur les polices sous forme de fichier PSD, vous pouvez utiliser des outils en ligne si vous ne pouvez ou ne souhaitez pas utiliser Photoshop (ou si vous préférez utiliser Gimp, les polices PSD sont pixellisées).

Par exemple, vous pouvez essayer cet extracteur de police en ligne html5 PSD "Get PSD Fonts".

Il s'agit d'un extracteur d'informations sur les polices PSD basé sur le projet psd.js Melitingice Github qui ne nécessite pas de téléchargement de fichiers, mais qui fonctionne localement dans la page de votre navigateur.


Il ouvre le fichier en javascript, sans l'envoyer à un serveur, dans votre propre page de navigateur! Vous devez déposer le fichier pour spécifier le chemin du fichier ...
Giovazz89

Vous voudrez peut-être divulguer toute affiliation que vous avez avec les projets mentionnés, même si c'est gratuit.
Compagnon Geek
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.