Photoshop에서 서체별 문자 이미지를 일괄 생성
11414 단어 adobe자바스크립트extendscript포토샵
지정한 문자로 지정한 개수분, 소지의 서체로부터 랜덤으로 선택된 것의 문자 화상을 생성합니다.
이미지 해석의 정밀도를 확인하기 위한 이미지를 생성하는 데 사용할 수 있을까 생각합니다.
생성된 이미지의 예
ExtendScript Toolkit
Adobe 애플리케이션을 JavaScript로 자동화하는 도구.
Mac이라면 아래에서 시작:
/Applications/Adobe ExtendScript Toolkit CC/ExtendScript Toolkit.app
ExtendScript
function makeTypeImage(textValue, generatedCount) {
///生成する個数のリミッター(システム書体数が多すぎる時に、ここの値を修正して使用)
const MAX_GENERATED_COUNT = 10000;
///保存先を指定
folderName = Folder.selectDialog("フォルダを選択してください");
if (!folderName) {
return;
}
///システム書体一覧を取得
var PsFonts = app.fonts;
///何個生成するか(0より小さい数値を入力するとシステム書体全てが対象)
var varGeneratedCount = PsFonts.length;
if (generatedCount > 0) {
varGeneratedCount = generatedCount;
}
///書体が多すぎる時のリミッター
if (varGeneratedCount > MAX_GENERATED_COUNT) {
varGeneratedCount = MAX_GENERATED_COUNT;
}
///ピクセルで指定するための設定
var originalUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
for (var i = 0; i < varGeneratedCount; i++) {
///書類作成(100×100ピクセル)
var docRef = app.documents.add(100, 100);
var artLayerRef = docRef.artLayers.add();
artLayerRef.kind = LayerKind.TEXT;
var textItemRef = artLayerRef.textItem;
textItemRef.contents = textValue;
///書体名を指定(必ずPostScript名)
///PsFonts[数値]の数値を書体数の範囲内でランダムにすると使用書体の固定化がされない。
///注意事項として、アイコンの書体が指定された場合、画像解析としては使いものにならない。
var varFontNumber = i;
if (generatedCount > 0) {
varFontNumber = Math.floor(Math.random() * PsFonts.length);
}
var varTextFont = String(PsFonts[varFontNumber].postScriptName);
textItemRef.font = varTextFont;
///フォントサイズ
textItemRef.size = 80;
///フォント座標指定
textItemRef.position = new Array(50, 80);
textItemRef.justification = Justification.CENTER;
///レイヤー結合
activeDocument.mergeVisibleLayers();
var fileobj = new File(folderName + "/JPEG_" + String(i));
///JPEGで保存
var saveOptions = new JPEGSaveOptions;
saveOptions.embedColorProfile = true;
saveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
saveOptions.quality = 12;
// 他、各プロパティを設定
app.activeDocument.saveAs(fileobj, saveOptions, false, Extension.LOWERCASE)
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
docRef = null
artLayerRef = null
textItemRef = null
}
}
///makeTypeImage(文字列、生成する個数);
makeTypeImage("A", 15);
이미지 크기, 글꼴 크기 등을 적절히 변경하십시오.
이 스크립트의 포인트는, 서체의 지정은 PostScript명으로 지정하는 것이라고 생각합니다.
사용 환경:
Adobe Photoshop CC(2015.5)
텍스트 레이어의 글꼴 지정 알레콜레
htp // d. 하테나. 네. jp/타코마루/20130618/1371574276
Photoshop 문서를 JavaScript로 별칭 저장
htp // d. 하테나. 네. jp / chal ny_ht / 20140725/1406299387
수정
16/07/11
지정 개수가 1보다 작은 값을 지정했을 경우, 모두 서체를 사용하도록(듯이) 하고 있었습니다만, 그 때에 서체를 중복시키지 않기 위해(때문에), 랜덤이 아니고 일련번호로 지정되도록(듯이) 했습니다.
생성 개수에 리미터를 추가했습니다.
Reference
이 문제에 관하여(Photoshop에서 서체별 문자 이미지를 일괄 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mm_sys/items/26175075311dec4ae3fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)