タグ:script 一覧

UXPに備えてモダンなJSの書き方に慣れる(分割代入、スプレッド構文、シャローコピー、ディープコピー)

今回分割代入スプレッド構文に入ります。この辺りはアロー関数以上に見た目が???な構文が多いです。とはいえインターネット上のjs関係の記事では勿論jsのフレームワークのドキュメントでももはや当たり前のように扱われています。これはPhotoshop UXPも例外ではありません。例えばPhotoshop UXPの以下の構文は見たことがあると思います。 constとrequireはわかるけどappを囲む{}は一体何だ!?という疑問を持つと思います。これこそが分割代入です。これは以下と同様のコードです。 それでもまだしっくりこないとは思います。勿論こういった書き方は個人で開発する場合はする必要もあるわけ

Read more

Photoshop UXP触ってみた

CEPの次なるplugin開発システムであるUXP(Unified Extensibility Platform)がPhotoshop2021から搭載されました。CEPとjsxはいつかはUXPに移行することになるらしいですが今すぐ使用できなくなるわけではないらしいです。(実際PhotoshopのUXP APIも開発途上な感じ)ベースがJavascript V8でアプリケーションの操作も同じV8の環境で実行できるのでCEPみたいにパネルとjsxで通信する必要もなくなます。将来的には動作もjsxよりかなり高速になるとは書いてありました。こちらを参照 とりあえず基本的な情報に軽く触れたいと思います。

Read more

Adobe Illustrator Extensionの開発 脱Hello Worldその11

今回からjsxとパネルのjsで通信します。main.jsから通信する前に通信の対象となるjsxを作ります。最初はアクティブなアートボードに対してガイドを中央に引くjsxを動かすjsを書きます。singleProcessというフォルダにsetCenterGuide.jsxを作ってその中にガイドを引くコードを書きます。 今回の通信は特にフォームの数値を渡したりするわけではないので単純にガイドを引くだけのシンプルなjsxです。 setCenterボタンを押すとcenterGuide関数が実行されるようにイベントを登録。関数の引数にjsxのファイル名、singleProcessを渡します。事前に準備し

Read more

Extension AIColorManagement

実験的にIllustrator用のExtensionを公開します。 Illustrator上でパスアイテムの塗りの色を管理するExtensionです。個人的によく使いそうな機能を主に三つ、一つのパネルにまとめました。 選択したパスアイテムの塗りの色を一括して動かす機能とカラーパターンを一瞬で作成する機能、それと特定の色をパネル上に一時的に保存する機能です。以下詳細。 塗りの色、一括調整機能 選択したパスアイテムをフォームに入力した数値だけ動かします。ばらばらのパスの塗りの色を一括して濃度の調整をしたいと思った事があったので作成。複合パスでもグループ化されたパスでも大体いけます。ただし特殊な設定

Read more

初心者向けAdobe JSX、Javascript入門これからjsxを始める前の話

JavaScirptでAdobeのアプリを自動化したい方向けの入門記事です。入門と言っても開発のやり方とか、文法の話ではなくそもそもJavaScriptってなんじゃらほいという話です。実際scriptを書いているとあのコードどうやって書くの?とかあの関数どうやって書くんだっけ?という壁にぶつかった時にインターネットで調べるになるはずです。しかしJavaScriptそのものの種類とか理解してないと検索やりかもわからなければどう言った種類の本を買えばいいのかというそもそもコード以前の壁にぶつかるからです。実際こう言った経験を自分自身が何度もぶつかったのでどのような方がこのサイトを見てるかわかりませ

Read more

Node jsで始めるfilesystem10 非同期ファイル操作

今回ファイル操作を非同期で行ってみます。 Node.jsでの非同期ファイル操作メソッドは同期ファイル操作のメソッドと違って結果をコールバックで受け取ります。それではフォルダーからファイル一覧を取得するfs.readdirメソッドの例から見てみます。 これは何回も見てきたように同期的にファイル一覧を取得するやり方です。これを非同期でやる場合は。 コールバックで結果を受け取ります。エラーが起きた場合はエラーもコールバックで受け取るのが通例です。これをPromiseで結果を受け取ってasync awaitを使えば見た目が同期処理のようなコードを書き込めます。 しかしreaddir他、mkdirやre

Read more

Node jsで始めるfilesystem8 async await error

async await の基本は非同期処理を同期処理のように書けるということでした。しかしエラー処理についてまで触れていません。promiseの場合メソッドチェーンにcatchをつなげてエラーをキャッチしていました。async,awaitのエラー処理はいくつかのやり方に別れます。おそらく最もわかりやすいのはtry catchで同期処理のようにキャッチする方法ではないしょうか。 いくつもの非同期処理関数を実行する場合もtry catchで括って一括で管理できます。Promiseがrejectを返した場合はそのままキャッチされるのでわかりやすい。勿論try内でエラーを普通にthrowした場合もキャ

Read more

Node jsで始めるfilesystem7 async await

promiseについて解説しましたがpromiseもthenによるメソッドチェーンを重ねる度に見通しが悪くなってきます。慣れてくるともっと見易くならないかと思うはずです。 メソッドチェーンを何重にも繋いで見づらくなってきました。これを同期処理っぽく書いてみます。 async await async 、await は非同期処理を同期処理のように書く糖衣構文である。同期処理と見た目を変えずに書けるためコードの見た目がすっきりします。ちなみに先ほどのコードをasync awaitで書き直すとこんな感じに。 メソッドチェーンが無くなってすっきりしました。async awaitは基本非同期処理を関数で囲

Read more

Node jsで始めるfilesystem3

今回はよく使うファイル操作のメソッド一覧です。 fs.renameSync(オリジナルパス、リネーム後のパス) fs.renameはリネームと名前がついていますがファイル移動もこのメソッドを使います。第一引数に元々のファイルパス、第二引数でリネーム後(移動後)のパス。リネーム後と同一のファイルがすでに存在する場合リネーム後のファイルで上書きしてしまうので注意。但し同じフォルダーがあった場合はエラーを返します。 fs.mkdirSync(フォルダーパス,オプション) fs.mkdirSyncはからのフォルダーを作成します。作成するフォルダーパスを引数に渡してください。階層の深いフォルダーを一度に

Read more

Export images

一年以上前に開発したExtension Export Images をアップグレードしました。今回はIllustratorと連動させてPhotoshopで開いている画像をIllustrator上の画像と置き換えたり逆にIllustator上で編集しているデータに配置されている画像をPhotoshopで開いて加工したりできます。 こちらはPhotoshop上で開いたときのパネル。 基本は前回と変わらずPhotoshopで開いている画像をまとめていろんな形式のファイルで保存できます。tiffやeps等アクションでまとめて保存できない形式の画像も保存できるので画像の拡張子の変換なんかにも使えます。以

Read more