はじめまして、yamamiです。
どなたかご助言いただけますと幸いです。
前提・実現したいこと
Photoshopのjavascript作成についてです。
任意のフォルダを選択し、中に入っているpngファイルを
一つのキャンバスに自動的に、かつそれぞれのレイヤーが重ならないように並べるscriptを作成中なのですが、
アクティブレイヤーの取得がうまくできず詰まっています。
発生している問題・エラーメッセージ
ポップアップにNanと表示されます
該当のソースコード
var folderObj = Folder.selectDialog("フォルダーを選択してください。"); if (folderObj) { app.preferences.rulerUnits = Units.PIXELS; var fileList = folderObj.getFiles('*.png'); var activeLayer = activeDocument.activeLayer; docObj = app.documents.add(1920,1080); var Width = (-docObj.width/2); var Height = (-docObj.height/2); for (var i=0; i<fileList.length; i++) { var file = fileList[i]; open(file); if((activeDocument.width>=500)||(activeDocument.height>=1000)){ activeDocument.selection.selectAll(); activeDocument.resizeImage((activeDocument.width)/3,(activeDocument.height)/3); } var WidthPlus = (Width+activeDocument.activeLayer.width/2); var WidthPlusPlus =(WidthPlus+activeDocument.activeLayer.width+10); activeDocument.selection.selectAll(); activeDocument.activeLayer.copy(); activeDocument.close(SaveOptions.DONOTSAVECHANGES); docObj.paste(); activeDocument.activeLayer.translate(WidthPlusPlus); alert(WidthPlusPlus); } }
試したこと
上記コード内にも記載していますが、
for文内のvar WidthPlusにて、activeDocument.activeLayer.widthと指定しているのですが、
実行してもNanになってしまいます。
補足情報(FW/ツールのバージョンなど)
念の為補足ですが、activelayerを指定している部分以外はちゃんと動いています。
PhotoshopのバージョンはCC 2019です。
あなたの回答
tips
プレビュー