Photoshopファイルで使用されているすべてのフォントを見つける


54

これ.psd(Photoshopファイル)があり、HTMLとCSSに変換しようとしています。

判断できないのは、どのフォントを .psd

Photoshopファイルで使用されているフォントを調べるにはどうすればよいですか?


CC2018の時点で、以下の2つのスクリプトとjsxプラグインが壊れています。それぞれについて具体的にコメントしました。
ドリュー

回答:


63

情報の抽出方法によって異なります。

セクションまたはテキスト領域ごと

テキストツール(セリフ付きのTアイコン)を選択し、テキスト領域をクリックして編集します。文字ウィンドウで使用されているフォントが表示されます。

一目で使用されるすべてのフォント

  1. 画像ドキュメントをPDFとして保存またはエクスポートする
  2. Adobe ReaderでPDFバージョンを開きます
  3. ファイル→プロパティ→フォントを選択します

これにより、PSDファイルで使用されるすべての埋め込み可能フォント一覧表示されます(埋め込み可能な場合)。

見つからないフォント

文字ツールで、フォント選択ドロップダウンに移動します。リストの最後には、画像で使用されているがシステムにないフォントが表示されます。これらは通常、グレー表示されます。

ラスタライズされた画像

フォントフェースが必要なラスタライズ画像が表示された場合は、そのセクションだけをクリアなスタンドアロンイメージとしてエクスポートし、What the Fontなどのサービスを使用してフォントを決定するのが最善です。


23

このスクリプトを新しいファイルとしてPhotoshop> Presets> Scriptsフォルダーに保存します。「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.',);
}

ここに画像の説明を入力してください


1
+500000ポイント。すごい。
ハーフ狂った


:クリップボードの使用中の書き込みテキストにこの答えstackoverflow.com/a/13983268/1578857
ディマKurilo

(Photoshop CC2018)エラー8500:要求されたプロパティは存在しません。53行目:var n = layerStyles.getObjectValue(countStyles).getObjectValue(stringIDToTypeID( 'textStyle'))。getString(stringIDToTypeID( 'fontPostScriptName'));
ドリュー

私は、スクリプトの修正版で更新答えを投稿するために、約午前@Drew
agrath

8

PSDファイル形式はAdobeによって文書化されています-フォント情報の保存方法を読むことができます。

次に、ファイルの16進ダンプを調べ、ファイル形式の仕様を使用してフォントを見つけます。

または、stringsLinux / Unixシステムで見つかったユーティリティの出力にフォント名が表示される必要があります。


2
+1:同じ解決策を思いつきました。何らかの理由でGIMPがPSDを正しくインポートしなかったため、どのフォントが使用されたのかわかりませんでした。HEXエディターでPSDファイルを分析して見つけました(「Font」をTEXTで検索)。推奨エディター:「bless」。
-lepe

5

これは、PSスクリプトを使用して簡単に実行できます。PSスクリプトは、PSDのレイヤーを反復処理し、テキストレイヤーデータを取得できます。

最近、JavaScriptベースのスクリプトを試し、開発者に配信されるコンプにフォント情報を直接オーバーレイしています。まだ終わっていませんが、まだ興味がある場合(これはかなり古いと思います)、ウィンドウで使用されているフォントをポップアップ表示するだけの簡単なバージョンを作成できます。

更新:私は、開発中のスクリプトの大まかな、しかし「ライト」バージョンをまとめました。貢献してお気軽- https://github.com/davidklaw/completer。スクリプトに慣れていない人のために、スクリプトファイルを取得してPS Presets / Scriptsフォルダーの下に置くだけで、[ファイル]-> [スクリプト]で使用できるようになります。


質問は古いかもしれませんが、ほぼ6,000ビューです。スクリプトを提供できれば、非常にありがたいです!ところで、スーパーユーザーへようこそ!
-slhck

良い電話。オープンソースのGitHubプロジェクトが完成しました。誰もが基本的なJavaScriptに精通していれば、自宅にいるように感じるはずです。
デビッド

うわー、これは実際にかなりうまくいく:D(y)!
エハズ

4

不足しているフォントをすばやく簡単に見つける方法

  1. Windows-> Character小さな文字ボックスにフォント情報が表示されます。

  2. フォント名のドロップダウンを選択し、最後までスクロールダウンします。

  3. フォントリストの最後に、不足しているフォントのリストが薄い灰色で表示されます。

ここに画像の説明を入力してください

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


そのパネルを有効にする方法は多数あります。追加の方法は、タイプ->パネル->文字です。
マーティクシー

3

テキストが既にラスタライズされている場合、簡単な方法は、識別したい書体で領域をトリミングし、.pngとして保存し、WhatTheFontにアップロードすることです。あいまいまたは特注のものです。

Identifontは、書体の特性を説明する別のサイトです。


テキストはラスタライズされないため、別のレイヤーになります。
デイブ

2
@Dave:テキストがまだ編集可能な場合は、テキストを選択して、フォントドロップダウンメニューまたは情報パレットに表示される内容を確認するだけです。これは本当に明らかです!
パラドロイド

1

必要なテキスト(できればズームイン)のスナップショットを取り、WhatTheFontを使用して推測します。(ただし、PSDを開いてそれぞれのテキストを選択すると、書体は表示されませんか?)

そしてもちろん、それがWebセーフフォントでない場合は、適切な置き換え方法を見つけるか、フォールバックスタックを提供する必要があります。


1

Creative Cloud Extractを使用する

使用されるすべてのフォントが一覧表示されます(その他の便利なものもあります)。


...それのように見えますが、いくつかの可能性を秘めているが、それは、Dreamweaverをインストールする必要が
ドリュー

1

Davidの元の回答(DetectFonts.jsx)に基づいて、Drewがコメントで報告した問題を修正するためにスクリプトを変更しました。Photoshop ファイルで使用されているすべてのフォントを検索します

元の指示に従いますが、代わりにこのスクリプト本体を使用します-いくつかのnullチェック(おそらく、Photoshopバージョンの違いか、デザイナーまたはオペレーティングシステム固有の特定のオブジェクトタイプの欠落データと関係がある)

また、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

Photoshopを開きます。Windows»Characterに移動します。小さなボックスがポップアップします。テキストレイヤーを選択するだけで、ボックスにフォントファミリ、サイズなどが表示されます。



0

開発者は、あなたが必要とするのとほぼ同じことを私に尋ねました。開発時に必要なレイヤープロパティ(テキスト、フォント名、フォントサイズ、フォントの色)を単一のtxtファイル(Windowsマシンで動作するはずです)にエクスポートする簡単なスクリプトの編集を思いつきました。

これを「ExportTexts.js」のように保存し、Adobe Photoshop> Presets> Scriptsに配置するだけです。

その後、Photoshopを実行(または再起動)し、スクリプトを実行します(ファイル->スクリプト-> ExportTexts)。また、これを行う前に、すべてのレイヤーのグループ化を解除してください。エクスポートされたファイルは、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

スクリプトは8行目で壊れています
-davidcondrey

そして、ライン12のエラー8500に、プロパティが存在しません:。outputFile.writeを(
ドリュー

0

あなたのためにこの仕事をすることができる無料のPhotoshop Extension / Panel、無料のPhotoshop Font Detector(http://www.layerhero.com/photoshop-font-detector/)があり、システムからフォントファイルを収集/コピーしたい場合フォルダ、Photoshop Art Packer(http://www.layerhero.com/photoshop-art-packer/)を試してください


「無料Photoshopフォントディテクター」は無料ダウンロードとしては提供されなくなり、現在は高価な拡張機能FontHeroの一部として$ 39で提供されています。
paulmz

それらのどれも利用できません。LayerHeroは死んでいない..驚くべきことに、あなたはウェイバックマシンからフォントの検出器をダウンロードすることができます:web.archive.org/web/20171211184218/http://www.layerhero.com/... 私はそれをインストールすることができていないが、どちらもAnastasiyのExtension ManagerもAdobe ExManも使用できません。
ドリュー

0

[レイヤー]タブには、すべてのレイヤーをフィルターしてフォントのみを表示できるオプションがあります。実際にそれらを見るには各レイヤーを選択する必要があり、それらを一目見たい場合にのみ役立ちます

これが尋ねられてから3年後に誰かの助けになることを願っています。


0

Web開発やCSSの目的のために、スタイル、サイズ、色、フォーマットなどのドキュメントフォントを知りたいので、ここに私が思いついたものがあります。

  1. レイヤーパネルの「T」アイコンをクリックして、テキストレイヤーのみをフィルター/表示します
  2. レイヤーパレットの一番上のテキストレイヤーをShift +左クリック
  3. レイヤーパレットの一番下までスクロールし、Shiftキーを押しながら下のテキストレイヤーを左クリックします。
  4. レイヤーパレットで選択したレイヤーを右クリックし、「レイヤーを複製」を選択します
  5. 「宛先ドキュメント」で、「新規」を選択します
  6. すべてのテキストレイヤーを含む新しいドキュメントに移動します
  7. テキストのすべてのレイヤーを再度選択します(ステップ#2および#3を参照)
  8. レイヤーパレットの下部にあるフォルダーアイコンをクリックして、すべてのテキストレイヤーを1つのグループにします
  9. グループの描画モード(レイヤーパレットのドロップダウン)を「標準」に変更します
  10. 新しいグループを右クリックします
  11. 「CSSをコピー」を選択します
  12. ドキュメントに貼り付け、必要に応じてスタイルのリストをフォーマットします!

-1

フォント情報をPSDファイルから取得するには、Photoshopを使用できない、または使用しない場合(またはPSDフォントをラスタライズするGimpを使用する場合)、オンラインツールを使用できます。

たとえば、このhtml5 PSDフォントオンライン抽出プログラム「Get PSD Fonts」を試すことができます。

Melitingice Githubプロジェクトpsd.jsに基づいたPSDフォント情報抽出ツールであり、ファイルをアップロードする必要がなく、ブラウザページでローカルに動作します


独自のブラウザページで、サーバーに送信せずにjavascriptでファイルを開きます!ファイルのパスを指定するにはファイルをドロップする必要があります
...-Giovazz89

あなたが言及しているプロジェクトに所属している場合は、たとえそれが無料であっても開示したいと思うかもしれません。
ジャーニーマンオタク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.