Supported by ochiaimitsuo.com, Contact
Supported by ochiaimitsuo.com, Contact
Adobe Photoshopでテキストレイヤーのフォントサイズを取得します。
var fontSize = activeDocument.activeLayer.textItem.size; alert(fontSize);
このAPIには不具合があり、テキストレイヤーの変形を行うと正しいフォントサイズを取得できません。変形したテキストレイヤーのフォントサイズを取得したい場合は、次のスクリプトを試してください。
var layer = app.activeDocument.activeLayer; var fontSize = getFontSize(layer); function getFontSize(layer){ var ref = new ActionReference(); ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") ); var desc = executeActionGet(ref).getObjectValue(stringIDToTypeID('textKey')); var fontSize= desc.getList(stringIDToTypeID('textStyleRange')).getObjectValue(0).getObjectValue(charIDToTypeID( "TxtS" )).getDouble(stringIDToTypeID('size')); if (desc.hasKey(charIDToTypeID("Trnf"))) { var mFactor = desc.getObjectValue(charIDToTypeID("Trnf")).getUnitDoubleValue (stringIDToTypeID("yy") ); fontSize = (textSize* mFactor).toFixed(2); } return fontSize; }; alert(fontSize);
//ref: https://forums.adobe.com/thread/2532118 var size = activeDocument.activeLayer.textItem.size; var r = new ActionReference(); r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("textKey")); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); var yy = 1; var yx = 0; try { var transform = executeActionGet(r).getObjectValue(stringIDToTypeID("textKey")).getObjectValue(stringIDToTypeID("transform")); yy = transform.getDouble(stringIDToTypeID("yy")); yx = transform.getDouble(stringIDToTypeID("yx")); } catch(e) { } var coeff = Math.sqrt(yy*yy + yx*yx); alert(size*coeff);