イラストレーターに埋め込まれた画像を書き出して再配置するスクリプト
タイトルどおりです。
イラストレーターに埋め込まれた画像をPSDに書き出して再配置します。
とりあえず、埋め込まれた画像すべてに反応します。
ひょっとしたら、小さすぎる画像や、大きすぎる画像はスキップするべきかもしれません。
そこらへんは適当に変えてみてください。
#include 'c.js';//http://svn.coderepos.org//share/platform/illustrator/javascript/lib/c.js #include 'matrixConvert.jsx';//http://d.hatena.ne.jp/kamiseto/20090502/1241251512 #target 'illustrator'; (function(){ if(app.activeDocument.selection.length > 0){ alert("何も選択しない状態で実行してください。"); return; } var targetFolder = Folder.selectDialog (); var reso = prompt ('解像度(pixel/inch)を数字で入力してください。0を入力すると現在の解像度を使用します。', 350, '書き出す解像度(pixel/inch)を入力して下さい。')*1; var i = 0; c(app.activeDocument.rasterItems).each(function(){ this.selected = true; app.copy(); var newDoc = app.documents.add(); app.paste(); var ras = newDoc.selection[0] //get VertivalScale,HorizontalScale,Rotate var RasterMatrix = matrixConvert.getAll(ras); //if reso is zero if(reso == 0)reso = 72*(100/(RasterMatrix.hs >= RasterMatrix.vs ? RasterMatrix.hs : RasterMatrix.vs)); ras.resize (10000/RasterMatrix.hs*(72/reso),10000/RasterMatrix.vs*(72/reso)); ras.rotate (RasterMatrix.rotation*-1); //Make ExportOptions var options = new ExportOptionsPhotoshop(); options.imageColorSpace = this.imageColorSpace; options.resolution = reso; options.antiAliasing = false; //Export to saveFile as PSD var saveFile = File(targetFolder+'/'+i+'.psd'); app.activeDocument.exportFile (saveFile, ExportType.PHOTOSHOP, options); newDoc.close (SaveOptions.DONOTSAVECHANGES); this.selected = false; //Replace RasterItem var pA = app.activeDocument.placedItems.add(); try{ pA.file = saveFile; pA.rotate(RasterMatrix.rotation); pA.position = this.position; pA.moveBefore(this); pA.width = this.width; pA.height = this.height; this.remove(); }catch(e){ pA.remove(); throw(e); } pA.selected =false; i++; }); })();