質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Photoshop

Photoshopとは、アドビシステムズ(株)が開発した画像編集のソフトウェアです。 イラストレーターや印刷業界などで幅広く使われている他、初心者や一般向けの写真編集用に開発されたソフトもあります。 専用に開発されたフィルターやプラグインを追加すると、機能を拡張することができます。

Q&A

0回答

496閲覧

Photoshop javascriptにて、activeレイヤーが取得できない

yamami

総合スコア4

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Photoshop

Photoshopとは、アドビシステムズ(株)が開発した画像編集のソフトウェアです。 イラストレーターや印刷業界などで幅広く使われている他、初心者や一般向けの写真編集用に開発されたソフトもあります。 専用に開発されたフィルターやプラグインを追加すると、機能を拡張することができます。

0グッド

0クリップ

投稿2019/09/08 16:05

編集2022/01/12 10:55

はじめまして、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です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問