クリエイター手抜きプロジェクト[215]Illustrator CS3/CS4編 Web上にある画像を読み込み配置する/古籏一浩

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


今回は、インターネット上にある画像ファイルを読み込み、Illustrator CS3/CS4に配置します。Illustrator CS3/CS4にはソケット通信機能がないので、前々回と同じようにBridge CS3/CS4経由でファイルをダウンロードした後で、Illustrator CS3/CS4上に配置します。

以下の例では、GIF形式の画像を配置していますが、ファイル名を変更するだけでJPEGやEPSにも対応できます。

まず、読み込むファイルがあるURLを変更してからホームフォルダにgetImageData.jsxというファイル名で保存します。
保存したら次に以下のスクリプトをIllustrator CS3/CS4から実行します。
これにより、Bridge CS3経由でファイルがホームフォルダにtemp.gifという名前で保存され、Illustrator CS3/CS4に画像として配置されます。



// サーバー上にある画像(GIF)ファイルを読み込む
var fileObj = getHttpData("http://www.openspc2.org/title.gif", "~/temp.gif");
var flag = fileObj.open("r");
if(flag != true){
alert("エラーです");
}
// HTTPを使って指定されたサーバーのデータを読み込みファイルオブジェクトを返す
function getHttpData(sURL, filePath){
if ( !ExternalObject.webaccesslib ) {
ExternalObject.webaccesslib = new ExternalObject("lib:webaccesslib");
}
var http = new HttpConnection(sURL);
http.response = new File(filePath);
http.execute();
http.response.close();
return new File(filePath);
}


ダウンロードする画像のURLは

var fileObj = getHttpData("http://www.openspc2.org/title.gif", "~/temp.gif");

http://www.openspc2.org/title.gifを変更してください。

一時的にtemp.gifファイルをホームフォルダに保存しますが、必要に応じて~/temp.gifの文字を保存したいパスに変更してください。ただし、書き込み可能な権限がないフォルダには保存できません。

以下のサンプルは、インターネットからファイルをダウンロードした後、自動的にIllustrator上のドキュメントに画像を配置するものです。ただ、インターネットからファイルがダウンロードできなかった場合、ずっと待ちの状態になって終了できなくなることがあります。その場合は、ホームフォルダにtemp.gifという名前のファイルを作成すれば終了させることができます。

サンプルでは、画像はリンクせず埋め込むようになっています。画像を埋め込みたくない場合には

pItem.embed();
 と
fs2.remove();

の行を削除してください。


// Illustrator CS3/CS4からBridge CS3/CS4を経由して画像を配置
var fs = new File("~/getImageData.jsx");
fs.open("r");
bridge2.executeScript(fs.read());
// temp.gifファイルを読み込み
var fs2 = new File("~/temp.gif");
while(!fs2.exists);
wait(2); // 待ち時間を2秒に設定
fs2.open("r");
// 画像を配置する
var fileRef = new File ("~/temp.gif");
var pItem = activeDocument.activeLayer.placedItems.add();
pItem.file = fileRef;
pItem.embed();
// 一時ファイル(temp.gif)を削除
fs2.remove();
// 待ち時間を処理する関数
function wait(sec){
var e = (new Date()).getTime() + sec*1000;
while((new Date()).getTime() <= e);
}


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

民主党圧勝。高速道路が無料になったら撮影におでかけだ。
MacOS X Snow Leopard入れました。起動が速く、便利になったのは確か。古いMacProだと6と4のキーを押したままでも64ビットでは起動しないとのこと。
ioreg -l -p IODeviceTree | grep firmware-abi
で< "EFI32" >と出ると64bit NG...

編集後記を元(?)に三田紀房っぽい政治向けのセリフを考えてみました。
(今日なら政治ネタがOKっぽいし)

「政治家という人間は嘘つきである」
「政治の世界においての世界とは金と人脈なのだ」
「勉強して…金や知識を蓄えてから政治家になるというのは、才能がないものの発する言葉だよ。法案作りや資金集めなんてまわりの秘書や官僚にやらせて人脈だけ利用し、ばれたらクビにする。これが真の政治家というもの」
「俗に…『政治家は利権まみれ』というだろう…あれはね…大きな間違いなんだよ。利権団体を代表するのが政治家だ」
「政治家は自分がいかに裏金を集めるか…さらに…いかにマスコミにばれずに済むかを考える世界だ。そのためには誰よりも上手に『マスコミを使って有権者をだます』ことだ」

柴田編集長曰く「あまり意外性がないのが政治家ネタのつまらないところです」とのこと。仕方ないので次回は別のジャンルで……。



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

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂第6版 HTML&スタイルシート ポケットリファレンス (POCKET REFERENCE) よくわかるゼロからはじめるJavaScript (よくわかるトレーニングテキスト) [改訂版] VBScriptポケットリファレンス (POCKET REFERENCE) JavaScriptプログラミング入門 第2版

by G-Tools , 2009/08/31