Illustrator CS3/CS4/CS5/CS6編 自動的にトレースしSVG/PNG形式で保存する

今回は、Illustratorで選択したフォルダ内にあるJPEG画像を、トレースしてSVG形式またはPNG形式にして保存するスクリプトです。

トレースした画像データをベクター形式で保存できるSVG形式であれば、HTML5対応のブラウザでも表示することができます。ベクター形式の場合、ブラウザで拡大しても画像がモザイクのように粗くなってしまうことがありません。

HTML5のインラインSVGにすると、JavaScriptで手軽に操作することもできます。以下のプログラムは、選択したフォルダ内にあるJPEG画像を開いて「カラー変換(16色)」でのトレースを行いSVG形式で保存します。


(function(){
var folder = Folder.selectDialog ("jpeg画像があるフォルダを選択");
if (!folder){ return; }
var fileList = folder.getFiles("*.jpg");
for(var i=0; i<fileList.length; i++){
var doc = app.documents.add(DocumentColorSpace.RGB, 384, 216);
var img = app.activeDocument.placedItems.add();
img.file = fileList[i];
var t = img.trace();
var trObj = t.tracing; // Tracing Object
trObj.tracingOptions.loadFromPreset (app.tracingPresetsList[3]);
// SVG Save
var savefile = new File(folder.fsName+"/"+i+".svg");
var opt = new ExportOptionsSVG();
opt.embedRasterImages = false; // 画像を埋め込む時は true
opt.embedAllFonts = false; // フォントを埋め込まない時は false
opt.documentEncoding = SVGDocumentEncoding.UTF8; // 文字コードは UTF-8
opt.fontType = SVGFontType.OUTLINEFONT; // アウトラインにする
opt.fontSubsetting = SVGFontSubsetting.GLYPHSUSED;
opt.compressed = false; // 圧縮する場合は true
app.activeDocument.exportFile(savefile, ExportType.SVG, opt);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
})();

次にPNG形式で保存するスクリプトです。

(function(){
var folder = Folder.selectDialog ("jpeg画像があるフォルダを選択");
if (!folder){ return; }
var fileList = folder.getFiles("*.jpg");
for(var i=0; i<fileList.length; i++){
var doc = app.documents.add(DocumentColorSpace.RGB, 384, 216);
var img = app.activeDocument.placedItems.add();
img.file = fileList[i];
var t = img.trace();
var trObj = t.tracing; // Tracing Object
trObj.tracingOptions.loadFromPreset (app.tracingPresetsList[3]);
// PNG Save
var savefile = new File(folder.fsName+"/"+i+".png");
var opt = new ExportOptionsPNG24();
opt.antiAliasing = true; // アンチエイリアシング。falseだとアンチなし
opt.transparency = true; // 透過させたくない場合はfalse
opt.saveAsHTML = false; // HTMLファイルも生成するか
app.activeDocument.exportFile(savefile, ExportType.PNG24, opt);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
})();

どちらのスクリプトも「カラー変換(16色)」でのトレースを行いますが、これ以外の形式でのトレースを行いたい場合もあります。その場合は、以下の行の app.tracingPresetsList[3] の3の数値を変更します。

trObj.tracingOptions.loadFromPreset (app.tracingPresetsList[3]);

この数値は以下のトレース形式と対応しています。

1………単純トレース
2………カラー変換(6色)
3………カラー変換(16色)
4………写真(低精度)
5………写真(高精度)
6………グレースケール
7………手書きスケッチ
8………詳細なイラストレーション
9………コミックアート
10……図面
11……白黒のロゴ
12……単色ロゴ
13……ペン画
14……文字

また、ドキュメントサイズを設定していますが、書き出し時には無視されますので特に変更しなくても大丈夫です。

[サンプルをダウンロード]