JavaScriptでJPEGエンコーディングを試してみた人がいたみたいです

141 views
Skip to first unread message

萩原崇之

unread,
Dec 8, 2009, 10:04:53 PM12/8/09
to html5-dev...@googlegroups.com
 少し前になりますが、AjaxianでCanvasを使ってJavaScriptでJPEGエンコーディングに挑戦したケースが紹介されていました

http://ajaxian.com/archives/javascript-jpeg-encoding

http://www.bytestrom.eu/blog/2009/1120a_jpeg_encoder_for_javascript

 おおまかな概要はこちらにまとめてあります↓

http://d.hatena.ne.jp/kagigotonet/20091209/1260326993

 WebWorkersによるスレッドプログラミングも試してみたらしいのですが、どうも文字列のみ、という制限がボトルネックになってうまく動いていないらしいです(^^;)
 ただ、最近のJavaScriptはかなり早いらしく、コンパイラ方式であるActionScriptと比べてもそれほど遅くないスピードに仕上がっているのは驚きですね。


--^----^--------------------------------------
萩原崇之@自宅警備員.com

はてな:http://d.hatena.ne.jp/kagigotonet/
twitter:takayuki_h
livernal.net:http://livernal.net

Shumpei Shiraishi

unread,
Dec 10, 2009, 10:06:59 PM12/10/09
to html5-dev...@googlegroups.com
白石です。

すごいな、画像のエンコーダをJavaScriptで書いたんですね・・・・!!
まともな時間内に処理が返ってくるというのが驚きです。
これというのも、Chromeが「速度」という指標をブラウザに持ち込んでくれたからですね。ありがたや。


ちなみに、Canvasを使ってJPEGを生成するには、toDataURL()というメソッドを用いるというマトモな方法もあります。
キャンバスに画像を書き出したあと、

// 引数省略時はimage/png
var dataURL = canvas.toDataURL("image/jpeg");

とやれば、データがJPEG形式の画像(をBase64で文字列化してdata
URLにしたもの)が返ってきますので、そのままimg要素のsrc属性とかに指定できます。
他のドメインから取得した画像を貼り付けたキャンバスだと、セキュリティ制限で上の方法は利用できませんが、一応スマートなやりかたとして。


2009/12/9 萩原崇之 <hagiwara...@gmail.com>:
> --~--~---------~--~----~------------~-------~--~----~
> このメールは次の Google グループの参加者に送られています: html5-developers-jp
> このグループにメールで投稿: html5-dev...@googlegroups.com
> このグループから退会する: html5-developer...@googlegroups.com
> その他のオプションについては、次の URL からグループにアクセスしてくださ
> い。 http://groups.google.co.jp/group/html5-developers-jp?hl=ja
> -~----------~----~----~----~------~----~------~--~---
>
>
Reply all
Reply to author
Forward
0 new messages