2007年 08月 08日

Photoshop でロールオーバーな画像を一括保存する JS

できた!
http://lab.lowreal.net/trac/browser/c/photoshop/SaveSlicesWithRollOver.jsx
over っていう名前がついたレイヤーを (レイヤーセットのほうがいいきがしてきた。あとで変えよう)

  • 表示させた状態
  • 表示させない状態

でそれぞれ保存して、デフォルトの名前っぽいスライスを削除

保存先はファイルと同じディレクトリの filename-slices 以下になる

  • filename.psd
  • filename-slices/
    • images/
      • hogehoge.png
      • fugagua.png
    • over/
      • images/
        • hogehoge.png
        • fugagua.png

あと同じファイルの場合は over のほうを削除して、違う場合は連結させたい。でもバイナリ比較ができないっぽい予感。read して比較するだけなら問題ないかな。

http://lab.lowreal.net/trac/changeset/830
連結までやるようにした。結構いろいろハマった……
インデックスカラーな画像は doc.changeMode(ChangeMode.RGB); してあげないと duplicate できない。これは普通に UI からやってもそうなんだけど

あと
http://lab.lowreal.net/trac/changeset/831
レイヤーセット (グループ) にするようにした。

手順としては

  1. ロールオーバーしたときの画像にするレイヤーセットを over という名前にしとく
  2. 普通にスライスをきる
  3. Web 用に保存で各スライスのフォーマットとかを指定して「完了」
  4. このスクリプト実行

フォーマットを指定するとき、gif だと連結ができない。あと連結後のときは普通に保存しているだけなので、Web 用の保存のオプションはきかない。(ロールオーバーしない画像のオプション指定が主)