yama5: 2008年1月アーカイブ

俺流Photoshop自動化大作戦

よく使うのでAdobe Photoshop CS3自動化作戦を見て、Photoshop内のテキストをテキストファイルに書き出すスクリプト作った。
ちょっと遅いけど、便利。

以下、ソース。使い方は上記の自動化作戦を参考に。

CR = String.fromCharCode(13);
savename = File.saveDialog("保存するファイル名を入れてください");
if (savename) {
  var fileObj = new File(savename);
  var flag = fileObj.open("w");
  if (flag == true) {
    writeLayerName(activeDocument);
    fileObj.close();
  } else {
    alert("ファイルが開けませんでした");
  }
}

// レイヤーセット内にレイヤーが含まれる限り書き出し(再帰)
function writeLayerName(layObj) {
  var n = layObj.artLayers.length;
  for (var i=0; i<n; i++) {
    if (layObj.artLayers[i].kind == LayerKind.TEXT) {
      txt = layObj.artLayers[i].textItem.contents;
      fileObj.write(txt+CR+"---------"+CR); // レイヤー間の区切りにハイフン追加
    }
  }
  var ns = layObj.layerSets.length;
  for (var i=0; i<ns; i++) {
    writeLayerName(layObj.layerSets[i])
  }
}