クリエイター手抜きプロジェクト[264]Illustrator CS4/CS5編 横と縦の枚数を指定してアートボードに配置/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,600文字)


あけまして、おめでとうございます......という時期は終わってしまいましたが、今年最初なのでおなじみのご挨拶。

今回は、以前とりあげた複数のアートボードへの連続画像配置を機能アップしたものです。以前のスクリプトでは枚数は自由に調整できましたが、改良したスクリプトでは横と縦の枚数を指定してJPEG画像を配置することができます。スクリプトを実行すると横と縦の配置枚数を聞いてきます。その後、JPEG画像があるフォルダを指定すると自動的にアートボードに配置されていきます。



// 縦横を指定して配置。あらかじめドキュメントを用意
(function(){
var abNum = 100; // 100ページ
var pageW = 595.28; // A4サイズ横幅
var pageH = 841.89; // A4サイズ縦幅
var layoutW = prompt("横のアートボードの数を指定してください", 7);
if (!layoutW) return; // キャンセルされたら以後の処理はしない
var layoutH = prompt("縦のアートボードの数を指定してください", 7);
if (!layoutH) return; // キャンセルされたら以後の処理はしない
var folderObj = Folder.selectDialog("配置するJPEG画像があるフォルダを選択してください");
if (!folderObj) return; // キャンセルされたら以後の処理はしない
layoutW = eval(layoutW);
layoutH = eval(layoutH);
var fileList = folderObj.getFiles("*.jpg");
var num = fileList.length;
var total = layoutW * layoutH; // 総合枚数を求めておく
if (num > total) num = total; // トータル枚数枚以上は配置しない
var count = 0;
for(var j=0; j< layoutH; j++){
var X = 0;
var Y = pageH * (j+1);
for(var i=0; i< layoutW; i++){
setImage(fileList[count++], X, Y);
X = X + pageW;
if (X > pageW*9) { // 10*10なので10枚を超えたら下のアートボードへ
X = 0;
Y = Y - pageH;
}
}
}
// 指定した位置に画像を配置
function setImage(fileObj, x, y){
var myImage = app.activeDocument.placedItems.add();
myImage.file = fileObj;
myImage.left = x;
myImage.top = y;
if (myImage.width > pageW){ // ページの横幅よりはみ出している場合
var d = pageW / myImage.width;
myImage.width = myImage.width * d;
myImage.height = myImage.height * d;
}
if (myImage.height > pageH){ // ページの縦幅よりはみ出している場合
var d = pageH / myImage.height;
myImage.width = myImage.width * d;
myImage.height = myImage.height * d;
}
var tx = (pageW - myImage.width) / 2;
var ty = (pageH - myImage.height) / 2;
myImage.translate(tx, -ty);
myImage.embed();
}
})();

JPEG画像でなくPSD画像の場合は以下のように変更してください。

var fileList = folderObj.getFiles("*.jpg");
  ↓
var fileList = folderObj.getFiles("*.psd");

拡張子を変えれば他の画像形式(GIF, PNGなど)も配置することができます。


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

今回のネタは、質問いただいたものを取り上げました。リクエストをお待ちしております。

漫画を作れるアプリ、コミPo!は結構面白いのでコツコツと4コマ漫画とか作ってます。暇な方はどうぞ。
嘘ドラ(嘘ドラッカー)
< http://www.openspc2.org/reibun/comipo/drucker/ >

IS○○(IS01,IS03,Android 2.x)なんとなくIS01ユーザー向け?
< http://www.openspc2.org/reibun/comipo/IS01/index.html >

P6 vs MZ(1980年代前半の8bitマイコン〈パソコン〉ユーザー向け)
< http://www.openspc2.org/reibun/comipo/P6_vs_MZ/index.html >

・Google API Expertが解説するHTML5ガイドブック
< http://www.amazon.co.jp/dp/4844329278 >

毎度おなじみASCII.jpの連載もよろしく。
・iOS 4.2の新機能で作るHTML5+JSアプリ
< http://ascii.jp/elem/000/000/573/573478/ >

・プロならば知っておくべきWebコーディング&デザインの定石100
< http://www.amazon.co.jp/dp/4844361538 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集 発売中
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >