レイヤーごとに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の作業もする。