クリエイター手抜きプロジェクト[224]Adobe Illustrator CS3/CS4編 画像の縮小率を画像の上に表示する/古籏一浩

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


今回は、ご質問いただいた中から、Illustratorに関するものを掲載します。スクリプトの一部は質問された方のものですが、デジクリへの掲載許可を得ています。

スクリプトは、Illustratorに配置された画像の上に情報を表示するものです。リンクされた画像、埋め込まれた画像の両方が対象になります。

このままスクリプトを実行すると新規にレイヤーが作成され、そのレイヤーに画像のファイル名、拡大縮小率(スケール)が表示されます。なお、MacOS Xの場合、ファイル名が日本語のとき正しく表示されないことがあります。これに関しては、以下のURLにあるInDesignの変換処理部分を参照してください。
< http://www.openspc2.org/projectX/InDesign/0012/index.html >



(function(){
var CR = String.fromCharCode(13);// 改行コード
var targetItem = [];
var count = 0;
var rectW = 150;// 情報を表示する四角形の横幅
var rectH = 40;// 情報を表示する四角形の縦幅
var allItems = app.activeDocument.pageItems;
// 該当するオブジェクトをピックアップ
for(var i=0; i<allItems.length; i++){
var tp = allItems[i].typename;
if (( tp == "PlacedItem") || ( tp == "RasterItem")){
targetItem[count++] = allItems[i];
}
}
// 該当するオブジェクトの情報を表示
var layObj = app.activeDocument.layers.add();
layObj.name = "画像情報 ("+ (new Date());// 画像情報を取得した時間も名前に追加
for(i=0; i<count; i++){
var posX = targetItem[i].position[0];
var posY = targetItem[i].position[1];
var w = targetItem[i].width;
var h = targetItem[i].height;
var x = posX + (w - rectW) / 2;
var y = posY - (h - rectH) / 2;
drawRect(x, y, rectW, rectH);
var filename = targetItem[i].file.name;// ファイル名
var tfObj = activeDocument.textFrames.add();
var mA = targetItem[i].matrix.mValueA;
var mB = targetItem[i].matrix.mValueB;
var mC = targetItem[i].matrix.mValueC;
var mD = targetItem[i].matrix.mValueD;
var scaleW=Math.round((Math.sqrt((Math.pow(mA,2)) + (Math.pow(mB,2)))*100000))/1000;
var scaleH=Math.round((Math.sqrt((Math.pow(mC,2)) + (Math.pow(mD,2)))*100000))/1000;
tfObj.contents = filename + CR+ scaleW +"% x "+scaleH+"%";
tfObj.translate(x + 5, y - 12);
tfObj.paragraphs[0].justification = Justification.LEFT;
tfObj.textRange.size=9;
}
})();

// ----------------------------------------------------------------
// 四角形を描く
function drawRect(y, x, w, h){
var rectObj = app.activeDocument.pathItems.rectangle (x, y, w, h);
rectObj.fillColor = setCMYKColor(0, 0, 100, 0);// 黄色の地
rectObj.stroked = true;// 先にtrueを設定した後で線幅を指定しないとダメ
rectObj.strokeWidth = 1;// 1pt
rectObj.strokeColor = setCMYKColor(0, 0, 0, 100);// 黒線
return rectObj;// 四角形のオブジェクトを返す
}
// CMYKカラーを設定し、CMYKカラーオブジェクトを返す
function setCMYKColor(c,m,y,k){
var CMYK = new CMYKColor();
CMYK.cyan = c;
CMYK.magenta = m;
CMYK.yellow = y;
CMYK.black = k;
return CMYK;
}


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

牧場ゲームって気長だなあ。作った作物を仮想通貨&リアル現金で売れればいいんだけど。そこまでやるのかどうか、mixiアプリしばらく観察。mixiアプリで一稼ぎしましょう(?)といいつつ、課金システムがないというのは手落ちじゃないかなあ。Go言語とか、まあいろいろネタが増えすぎ。

毎度おなじみASCII.jpの連載もよろしく
・JS超えた!? UIZE Frameworkの特殊効果を見せます!
< http://ascii.jp/elem/000/000/466/466515/ >

善光寺西街道を追加しました。
・信濃路を走る【信濃路をX倍速で走る】
< http://www.openspc2.org/travel/shinanoji/ >

photo
組版時間を半減する! InDesign自動処理実例集
技術評論社 2008-11-25
おすすめ平均 star
starプログラミング経験のない方も気軽に挑戦してほしいです

1ランク上の技を身につけるInDesignの強化書 (MYCOMムック +DESIGNING Professional Bible) InCopyとInDesignによるワークフロー革命 CS4 & CS3 対応 for Macintosh & Windows Adobe InDesign「文字組み」徹底攻略ガイド InDesignレイアウト手帖 InDesign CS3の仕事術


photo
Ext JS入門―リッチUIなWebサイトをつくるAjaxフレームワーク
秀和システム 2009-07
おすすめ平均 star
star唯一のExt JS本

Practical Ext JS Projects with Gears (Practical Projects) JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス WEB+DB PRESS Vol.52 4Gbpsを超えるWebサービス構築術 Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容


photo
改訂第4版 JavaScript ポケットリファレンス
技術評論社 2006-10-18
おすすめ平均 star
star実用的で分かり易い
starJavaScriptを使ったプロジェクトのお供に是非
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

改訂第6版 HTML&スタイルシート ポケットリファレンス (POCKET REFERENCE) [改訂版] PHP ポケットリファレンス (Pocket reference) JavaScriptワークブック―ステップ30 (情報演習 (5)) JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス JavaScriptプログラミング入門 第2版

by G-Tools , 2009/11/18