Encuentra todas las fuentes utilizadas en un archivo de Photoshop


54

Tengo esto .psd(archivo de Photoshop) y estoy tratando de convertirlo a HTML y CSS.

Lo único que no puedo determinar es qué fuente usaron en el .psd

¿Cómo puedo averiguar qué fuentes se usaron en el archivo de Photoshop?


A partir de CC2018, 2 de los scripts a continuación y el complemento jsx están rotos. Comenté específicamente para cada uno.
Dibujó el

Respuestas:


63

Depende de cómo desee extraer la información.

Por sección o área de texto

Seleccione la herramienta Texto ( icono T con serifs) y haga clic en el área de texto para editarla. Mostrará qué fuente se está utilizando en la ventana Carácter.

Todas las fuentes utilizadas de un vistazo

  1. Guarde o exporte el documento de imagen como PDF
  2. Abra la versión PDF en Adobe Reader
  3. Seleccione Archivo → Propiedades → Fuentes

Esto enumerará todas las fuentes incrustables utilizadas en el archivo PSD, siempre que pueda incrustarlas.

Fuentes faltantes

En la herramienta Carácter, vaya al menú desplegable de selección de fuente. Al final de la lista estarán las fuentes que se usan en la imagen pero que faltan en su sistema. Estos generalmente estarán atenuados.

Imágenes rastersized

Si ve imágenes rasterizadas para las que necesita la fuente, es mejor que exporte esa sección como una imagen clara e independiente y use un servicio como What the Font para determinar la fuente.


23

Guarde este script como un nuevo archivo en su carpeta Photoshop> Presets> Scripts. Póngale el nombre que desee, como "Detectar fuentes.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.',);
}

ingrese la descripción de la imagen aquí


1
+500000 puntos. Increíble.
Medio loco el


Para escribir texto en el portapapeles, utilice esta respuesta: stackoverflow.com/a/13983268/1578857
Dima Kurilo

(Photoshop CC2018) Error 8500: la propiedad solicitada no existe. Línea 53: var n = layerStyles.getObjectValue (countStyles) .getObjectValue (stringIDToTypeID ('textStyle')). GetString (stringIDToTypeID ('fontPostScriptName'));
Dibujó el

@Drew Estoy a punto de publicar una respuesta actualizada con una versión fija del script
agrath

8

Adobe documenta el formato de archivo PSD ; puede leer cómo almacena la información de la fuente.

Luego, puede examinar un volcado hexadecimal del archivo y utilizar la especificación del formato de archivo para encontrar las fuentes.

Alternativamente, los nombres de las fuentes deben estar visibles en la salida de la stringsutilidad que se encuentra en los sistemas Linux / Unix.


2
+1: se me ocurrió la misma solución. Por alguna razón, GIMP no importó la PSD correctamente y no sabía qué fuente se usaba. Analicé el archivo PSD en un editor HEX para encontrarlo (Buscar: "Fuente" como TEXTO). Editor recomendado: "bendecir".
lepe

5

En realidad, esto es muy fácil de hacer usando scripts de PS, que pueden recorrer en iteración las capas de su PSD y extraer datos de la capa de texto.

Últimamente he estado experimentando con un script basado en JavaScript para superponer información de fuentes directamente en comps que se entregan a los desarrolladores. No está terminado, pero si todavía hay interés (veo que esto es bastante antiguo) puedo poner una versión rápida y sucia que simplemente muestra las fuentes utilizadas en una ventana.

ACTUALIZACIÓN: armé una versión "litera" aproximada pero funcional del guión que estoy desarrollando. Siéntase libre de contribuir: https://github.com/davidklaw/completer . Para aquellos que no estén familiarizados con los scripts, simplemente tome el archivo de script y póngalo en su carpeta PS Presets / Scripts y estará disponible en Archivo -> Scripts.


La pregunta puede ser antigua, pero tiene casi 6,000 visitas. Si pudieras proporcionar un script, ¡eso sería muy apreciado! ¡Bienvenido a Super User, por cierto!
slhck

Buena llamada. El proyecto de código abierto GitHub está en marcha. Si alguien está familiarizado con JavaScript básico, debe sentirse como en casa.
David

wow esto realmente funciona bastante bien: D (y)!
Ejaz

4

Manera rápida y fácil de encontrar fuentes que faltan

  1. Windows -> Carácter Se mostrará un pequeño cuadro de caracteres con información de fuentes.

  2. Seleccione el menú desplegable de nombre de fuente y desplácese hacia abajo hasta el final.

  3. Notará una lista de fuentes faltantes en color gris claro al final de la lista de fuentes.

ingrese la descripción de la imagen aquí

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


Existen numerosas formas de habilitar ese panel: una adicional es Tipo -> Paneles -> Carácter.
Martixy

3

Si el texto ya ha sido rasterizado, la forma más fácil sería recortar el área con el tipo de letra que desea identificar, guardar como .png y subirlo a WhatTheFont , donde debería poder decirle qué es, a menos que es oscuro o hecho a medida.

Identifont es otro sitio que puede usar, donde describe las características de la tipografía.


el texto no está rasterizado, lo que significa que está en una capa separada.
Dave

2
@Dave: si el texto aún es editable, todo lo que tiene que hacer es seleccionarlo y ver qué aparece en el menú desplegable de fuentes o en la paleta de información. ¡Esto es realmente obvio!
paradroid

1

Tomaría un chasquido del texto que necesita (preferiblemente ampliado) y usaría WhatTheFont para obtener algunas conjeturas. (¿No debería mostrarse el tipo de letra cuando abra el PSD y seleccione el texto correspondiente?)

Y, por supuesto, si no es una fuente segura para la web, deberá encontrar una forma adecuada de reemplazarla o proporcionar una pila alternativa.



1

Basado en la respuesta original de David (DetectFonts.jsx), he modificado el script para solucionar el problema informado por Drew en los comentarios: Encuentra todas las fuentes utilizadas en un archivo de Photoshop .

Siga las instrucciones originales, pero use este cuerpo de script en su lugar: la única diferencia son algunas comprobaciones nulas (presumiblemente una diferencia de versión de Photoshop o algo relacionado con datos faltantes sobre tipos de objetos particulares, probablemente diseñador o sistema operativo específico)

También enviaré una solicitud de extracción 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

Abre Photoshop. Vaya a Windows »Carácter . Aparecerá una pequeña caja. Simplemente seleccione la capa de texto y el cuadro le indicará la familia de fuentes, el tamaño, etc.



0

El desarrollador me preguntó casi lo mismo que necesitabas. Se me ocurrió editar un script simple, para exportar las propiedades de capa (texto, nombre de fuente, tamaño de fuente, color de fuente) que necesita al desarrollar, a un solo archivo txt (debería funcionar en la máquina Windows).

Simplemente guarde esto como "ExportTexts.js" y póngalo en Adobe Photoshop> Presets> Scripts.

Después de eso, ejecute (o reinicie) Photoshop y ejecute el script (Archivo -> Scripts -> ExportTexts). También asegúrese de desagrupar todas las capas antes de hacer esto. El archivo exportado debe estar en el mismo directorio que el archivo 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

Su guión está roto en la línea 8
davidcondrey

Y en la línea 12. Error 8500, la propiedad no existe: outputFile.write (.
Dibujó el

0

Hay una extensión / panel de Photoshop gratis que puede hacer este trabajo por usted, Free Photoshop Font Detector ( http://www.layerhero.com/photoshop-font-detector/ ), y si desea recopilar / copiar archivos de fuentes del sistema carpeta, pruebe Photoshop Art Packer ( http://www.layerhero.com/photoshop-art-packer/ )


El "Detector gratuito de fuentes de Photoshop" ya no está disponible como descarga gratuita y ahora forma parte de una costosa extensión FontHero por $ 39 .
Paulmz

Ninguno de esos está disponible. LayerHero está muerto. Sorprendentemente, puedes descargar Font Detector desde la máquina WayBack: web.archive.org/web/20171211184218/http://www.layerhero.com/… Sin embargo, tampoco he podido instalarlo. con Anastasiy Extension Manager ni Adobe ExMan.
Dibujó el

0

Hay una opción en la pestaña Capas que le permite filtrar todas las capas para mostrar solo las fuentes. Debe seleccionar cada capa para verlas realmente y es útil solo si necesita echar un vistazo rápido a ellas

Espero que ayude a alguien tres años después de que se le haya pedido esto.


0

Quería conocer las fuentes de documentos junto con sus estilos, tamaños, colores, formato, etc. para fines de desarrollo web y CSS, así que esto es lo que se me ocurrió:

  1. Haga clic en el icono "T" en el panel Capas para filtrar / ver solo las capas de texto
  2. Shift + clic izquierdo en la capa de texto superior en la paleta Capas
  3. Desplácese hasta la parte inferior de la paleta Capas y Shift + clic izquierdo en la capa de texto inferior
  4. Haga clic derecho en las capas seleccionadas en la paleta Capas y elija "Duplicar capas"
  5. En Documento de destino, seleccione Nuevo
  6. Vaya a su nuevo documento que debe contener todas sus capas de texto.
  7. Seleccione todas las capas de texto nuevamente (vea los pasos 2 y 3)
  8. Haga clic en el icono de la carpeta en la parte inferior de la paleta Capas para hacer que todas las capas de texto formen un solo grupo.
  9. Cambie el modo de fusión del grupo (el menú desplegable en la paleta de capas) a "Normal"
  10. Haga clic derecho en su nuevo grupo
  11. Elija "Copiar CSS"
  12. ¡Pegue en un documento y formatee su lista de estilos según sea necesario!

-1

Para obtener la información de las fuentes de un archivo PSD, puede usar herramientas en línea si no puede o no quiere usar Photoshop (o si prefiere usar Gimp, que rasteriza las fuentes PSD).

Por ejemplo, puede probar este extractor en línea de fuentes PSD html5 "Obtener fuentes PSD".

Es un extractor de información de fuentes PSD basado en el proyecto Melitingice Github psd.js que no requiere cargar archivos, trabajando localmente en la página de su navegador


¡Abre el archivo en javascript, sin enviarlo a un servidor, en su propia página del navegador!
Debe

Es posible que desee divulgar cualquier afiliación que tenga con los proyectos mencionados, incluso si es gratis.
Journeyman Geek
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.