webサイト制作の勉強 | web-sync

webサイト制作の勉強を2014年8月後半から始めました。このページはその履歴を残すために作成しています。

Illustrator レイヤーごとにPNG形式で画像を出力する

Photoshopはレイヤーカンプからの書き出しメニューがあるが、Illustratorには存在しない。

[Illustrator] レイヤーごとにPNG形式で画像を出力する

上記を参考にしました。

スクリプトテキストエディタに入力して、拡張子を.jsxにしてスクリプトメニューから読み出すだけだが、毎回スクリプトを指定しないといけない点が難点でした。

デフォルトの解像度でPNGファイルで書き出すスクリプト

var folder = Folder.selectDialog();
var document = app.activeDocument;
if(document && folder)
{  
  var options = new ExportOptionsPNG24();
  options.antiAliasing = true;
  options.transparency = true;
  options.artBoardClipping = true;
 
  
  var n = document.layers.length;
  for(var i=0; i<n; ++i)
  {
    hideAllLayers();
    var layer = document.layers[i];
    layer.visible = true;
 
    var file = new File(folder.fsName+"/"+layer.name+".png");
 
    document.exportFile(file,ExportType.PNG24,options);
  }
  
  showAllLayers();
}
 
function hideAllLayers()
{
  forEach(document.layers, function(layer) {
    layer.visible = false;
  });
}
 
function showAllLayers()
{
  forEach(document.layers, function(layer) {
    layer.visible = true;
  });    
}
 
function forEach(collection, fn)
{
  var n = collection.length;
  for(var i=0; i<n; ++i)
  {
    fn(collection[i]);
  }
}