Photoshop で JavaScript+バッチ処理してみた

公開日: : 最終更新日:2018/07/22 MacBook

(いろいろ中途半端な記事だったので 2012/02/12に加筆)
自作アプリ タッチ! にほんちず などで、白地図から都道府県の画像を大量に切り出す必要があった。
また、切り出した画像の座標を求めたい。
ということで、Photoshopで
1.色域指定して選択範囲を作成
2.その選択範囲の座標を取得
3.取得した座標をファイルに書き出す
この処理を何十回(今回の場合46回)も繰り返し実施したい。
(前準備として、46枚の画像を用意して、1枚ごとに別の都道府県に色を付けておいた。この作業も面倒だけれどもこれは自動では行えなかったので頑張って実施した)
さすがに何十回も同じことを繰り返すのはつらいので、やり方を検討してみた。

そしてはじめて、Adobe製品でJavaScriptを使って処理が実行できることを知った。
Adobe Photoshop CS4自動化作戦
PhotoshopでのJavascriptの実行方法
そして、座標の取得は下記によると、activeDocument.selection.bounds[0] で実行できる。
Photoshopのスクリプト(JavaScript)で、選択範囲の座標を抽出したい – グラフィックソフト – 教えて!goo
CS2だとエラーが出ると書かれていたが、自分のCS4ではエラーなしに実行することができた。
取得した座標は、ファイルに書き出すことにした。
Macだと改行コードは ¥r とするらしい。
一応単純だけれどもソースを貼ってみる。

<br />app.doAction('iroiki', 'MySet');</p><p>str = activeDocument.name + ":" + activeDocument.selection.bounds[0] + "," +activeDocument.selection.bounds[1];</p><p>filename = "/Users/token/test.txt";<br />fileObj = new File(filename);<br />flag = fileObj.open("a");<br />if (flag == true)<br />{<br />fileObj.write(str);<br />fileObj.write("¥r");<br />fileObj.close();<br />}else{<br />alert("ファイルが開けませんでした");<br />}<br />

これで、2.と3.は実施できた。
1.の色域指定で選択範囲作成は、JavaScriptで実行する方法が見つけられなかったので、ここではバッチ処理をしてみた。
photoshopでバッチ処理をしたい | OKWave
Photoshopのバッチでファイルを一括で処理する方法【初心者向け】 | TechAcademyマガジン

バッチ処理は、ウィンドウ > アクション でアクションウィンドウを開き、新規アクションを作成し、実際にやりたい作業を行って記録する。

その後、
ファイル > 「自動処理」> 「バッチ」
でそのアクションを指定することで実行することができる。

作成したアクションをJavaScript内で実行するのは
app.doAction(‘アクション名’, ‘セット名’);
になる。
これにより.jsx ファイルの実行で色域指定選択を実行し、その後その選択範囲に対して座標を取得し、ファイルに書き出すことに成功した。
この.jsxファイルはPhotoshopのあるフォルダのScriptsフォルダに入れておくと、メニューの[ファイル] – [スクリプト] から実行することができるらしい。
しかし、メニューから実行すると現在選択されているファイル1つに対してしか実行されないので、[ファイル] – [自動処理] – [バッチ]からバッチ処理を行う必要がある。
photoshop01.png

同様にして、色域指定した選択領域に対して、選択範囲を反転してカットしてトリミングすることで、色域指定選択した部分だけを切り出してファイルに書き出すことにも成功した。
おかげで手作業を大幅に省略することができた。
Photoshop は自分の予想よりもずっといろいろなことができるアプリケーションであるようだ。

Adobe Photoshop CS5 Macintosh版 (32/64bit)
Adobe Photoshop CS5 Macintosh版 (32/64bit)

アドビシステムズ 2010-05-28
売り上げランキング : 756

Amazonで詳しく見る by G-Tools

追記 2011/07/18

JavaScript のスクリプトに肝心の部分がなかったので追記した。
また、PhotoshopのJavaScriptの仕様はPhotoshopのインストールディレクトリの Scripting/Documents にPDFファイルがある。

関連記事

[macOS]ATOKから不要な候補を削除する方法

昔から WindowsでもMacでもATOKを使っている。昔は数年ごとに買い換えていたが、今はAT

記事を読む

no image

パワーサポート リストラグセット for MacBook 13inch PWR-53

冬にアルミボディは相当冷たいのと、パームレストに汗をかいてしまい塗装がはげたりすることを避けるために

記事を読む

アルミユニボディのMacBookを購入

アルミユニボディのMacBookを購入。カカクコムで上位にあった中で何となく信頼できそうに見えたIn

記事を読む

no image

Mac OS X Cocoaプログラミング(ヒレガス本)

Cocoaプログラミング界では有名だと思われるヒレガス本を購入。まずは目次。 使っているツール達のバ

記事を読む

no image

MacOSで複数の音声ファイルをNormalizeしたい

自作アプリでは自分の子供の声を録音して使用しているが、今回の録音は朝早く行ったためか声がとても小さく

記事を読む

no image

MacPeople 2009.11

MacPeopleは定期購読しているのだが、今回はレビュープラスからレビュアーに選ばれたので、もう一

記事を読む

no image

超初心者に最適 フォトショップのドリル! 長谷川アンナ

Photoshop初心者の自分には残念ながらPhotoshopデザインラボは全くついて行けなかったの

記事を読む

no image

高解像度ディスプレイを検討中

MacBook を開発に使っていることもあり、なるべく広い画面が欲しくなった。 現在使っているのは

記事を読む

XcodeにiPhoneとwatchが表示されない

2019年はGWに10連休があるということで、今日は3日目。毎日少しずつ開発を進めている。

記事を読む

M1 MacBook Air にリストラグを貼ってみた

M1 MacBook Air の筐体が冷たくて作業時につらいのでパームレストにリストラグを貼ってみ

記事を読む

Message

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

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

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

Vision Pro カバーケースを買ってみた

[itemlink post_id="11629"]

→もっと見る

PAGE TOP ↑