入力した任意の線数でグレースケールをトーン化するPhotoshopJSX

入力した任意の線数でグレースケールをトーン化するPhotoshopJSX

Photoshopで、グレースケールのレイヤー選択→ショートカット起動→線数入力→トーン化という完全俺得スクリプトを作ったのでシェアします。


背景

以前、こういう記事を書きました。

グレースケールのグループを一発でトーン化するアクションという、個人的には画期的な方法だったのですが、使ってるうちに不満も出てくるもので…。

「アクションを線数ごとに用意する必要がある」←実行時に選ぶのがめんどう、「トーン化したいpsdファイルが1つだけ開いている状態で実行しないとダメ」←うっかりやってしまう、などなど微妙な制約が多くて、何よりプログラマ脳な私が「ショートカットでウィンドウ出して線数入力するとか、もっとスマートにならんのかい」とささやき続けていたのです…(;´Д`)

それでPhotoshopのJSXに手を出して、ようやく自分の理想のモノができました!

コード

以下のリンクにあるコードをコピペして任意の名前に「.jsx」という拡張子で保存してください。(「名前を付けてリンク先を保存」でもOKですよ!)

※作成/確認環境: PhotoshopCC2019 Win7/10

作成した.jsxファイルを、以下の記事を参考にスクリプトフォルダに入れて、必要であればショートカットで実行できるようにしてみてください。

私はCtrl+Tでショートカット登録しています。

使い方

グレースケールモードのドキュメントにて、トーン化したいレイヤーを選択します。

スクリプトを実行して線数 (L) を入力、OKを押します(デフォルトは60、10~80の整数のみ対応)。解像度はそのドキュメントの値が使われます(600dpi推奨)。

「○○L」という名前の二階調乗算レイヤーができます。

指定する数値によってトーンの粗さが変わります。

変換元のレイヤーがグループでも動作します。

解説&カスタマイズ支援

長いので全部は載せませんが、カスタマイズしたい場合の参考にどうぞ。

メインコード

上記の部分がメインで動くところ。ハイライトしてあるpromptで入力要求、makeTone関数でトーン化、最後に対象レイヤーを非表示、というのが必要最低限なのですが、ファイルが開いてないとかレイヤー選択されていないとかそういういろんなチェックをクリアしないとそこへたどり着かない作りになっております。

21行目末の「60」が線数にデフォルトで入っている数値なので、いちばんよく使う数値に書き換えてもらえれば良いと思います。

メインコード(別ver)

ちなみに私は、対象を連続して違う線数でトーン化して、それぞれ必要な部分以外をカットするという我流手順があります。そのため、処理後は変換元のレイヤーが表示状態&アクティブになっていてほしいので、以下のようなコードで使っています。

36~38行目は、変換元レイヤーがグループの場合、アクティブにしたときにグループが開いてしまい、それがわずらわしかったのでグループを折りたたむコードを入れています。ほんとは対象だけたためればよかったんですけど方法が見つからなくて…、仕方なくすべてたたむコードになっております…。

数値チェック関数

メインコードの28行目で呼び出す、入力された値が10~80の整数であるかチェックする部分。

80Lより大きな数を使いたい場合は5行目の数値を変更すれば指定できるようになります。

トーン化関数

メインコードの31行目で呼び出す、トーン化する部分はこんな感じになってます。

対象レイヤー(グループ)を別ドキュメントとして複製、トーン化して元ドキュメントに貼り付けしています。

公開日:2019/06/11

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)