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

Adobe IllustratorでレイヤーごとにPNG形式で画像を出力する方法を紹介します。

スクリプトファイルの準備

PNGファイルを書き出すためのスクリプトファイルを準備します。
以下のファイルを用意します。
SaveLayersPNGDefault.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]);
  }
}
SaveLayersPNG200dpi.jsx
200DPIの解像度で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;
  options.verticalScale = 277.777;
  options.horizontalScale = 277.777;
  
  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]);
  }
}
SaveLayersPNG300dpi.jsx
300DPIの解像度で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;
  options.verticalScale = 416.667;
  options.horizontalScale = 416.667;
  
  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]);
  }
}
拡張子を”jsx”とします。

スクリプトファイルの実行

作成したスクリプトファイルを実行して画像を書き出します。

画像を書き出したいIllustratorのファイルを開きます。


[ファイル]メニューの[スクリプト]のサブメニュー[その他のスクリプト...]を選択します。


実行するスクリプトの選択ダイアログが表示されます。先ほど作成した"jsx"ファイルを選択します。


画像の書き出し先のフォルダ選択ダイアログが表示されます。画像の書き出し先のフォルダを指定します。


画像はレイヤー名の名前で書き出されます。レイヤー名に日本語が含まれている場合、下図のワーニングダイアログが表示されます。[OK]ボタンを押して続行します。


画像の出力先フォルダを確認します。レイヤーごとにPNG形式の画像が書き出されていることが確認できました。


レイヤーごとにPNG画像の書き出しができました。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2014-02-20
iPentec all rights reserverd.