« wonderfl本で記事を書きました 「ブラウザで無料ではじめるActionScript 3.0 —It's a wonderfl world—」 | メイン | 2010 »

AIRで画像のURLを使わずに画像を保存 HTMLLoaderつかうよ

del.icio.us it!   hatena bookmark
たまには技術的なこと書かないといかんですね。というわけでちょろっとAIRを触っています。 画像のURLを使わずにその画像を保存する方法が無いもんかなと考えて、HTML読み込んで画像の部分だけBitmapDataにdrawしたらいいやん、ということでやってみました。


HTMLLoaderで取得したHTMLから保存したい画像をDOMで取得して、画像の位置と大きさでクリップしてBitmapDataにdrawします。


var h:HTMLLoader = new HTMLLoader();
h.load(new URLRequest("http://un-q.net")); // HTMLを読み込む
h.width = 800;
h.height = 1500;
h.visible = true;

h.addEventListener(Event.COMPLETE, function(e:Event):void {
    var img:Object = h.window.document.images;    
    var mtx:Matrix = new Matrix();
    // 仮にimg[0]が取得したい画像だとして
    mtx.translate(-img[0].x, -img[0].y);
    var rect:Rectangle = new Rectangle(0, 0, img[0].width, img[0].height);
    b.draw(h, mtx, null, null, rect);
    // あとはBitmapDataをjpgかなんかにエンコードして保存したらええと思います。
});

別にhtmlから画像のURL抜き出して、Loaderで読み込めばいいんですが、、再度画像を読みに行かなくて済むので、こっちのほうがサーバーに優しいですね。あまり使い道ないと思うけど。


Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編] 集合知プログラミング ビジュアライジング・データ —Processingによる情報視覚化手法 御岳百草丸 1200T

トラックバック

このエントリーのトラックバックURL:
http://un-q.net/mt-tb.cgi/422

コメント (2)

amp:

それじゃ、可視部分しかdrawできないよね。

匿名:

>amp
たしかにそうですねー。
imgタグ取得して強制的に表示させてからdrawするとかしたらいけますかねー

コメントを投稿

書いたよ!