Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kjunichi/9824092 to your computer and use it in GitHub Desktop.
Save kjunichi/9824092 to your computer and use it in GitHub Desktop.
ホストサイト側(Jsdo.it)にファイルサイズオーバー(>1MB)で置けないサイズのWebWorkers(ffmpeg.js)を扱うには?

ホストサイト側にファイルサイズオーバーで置けないサイズのWebWorkersを扱うには?

何が言いたいか分からない奴はこれでも見とけ!

余計に分からなくなる解説

JavaScriptは2次元化すると容量を減らせることもある

JavaScriptをバイト列とみなして、pngファイルに変換し、 実行時にpngを読み込んで、これをJavaScriptに戻せばよい。

png to script Lo-Thさん作

そうはいっても、単一画像だとデカくてまだホストサイトに置けないこともある

ホストにアップロードできる1ファイルの最大サイズ以内の複数の画像に分割し、 これらをそれぞれバイト列に戻し、それを繋げれば元のJavaScriptの出来上がり。

理屈は分かったが、具体的にどうするんだ!

HTML5からCanvasが使える。 この中に対象の画像に画素単位でアクセスできるAPIがあのでこれを使う。

CanvasはDOMなんだよなぁ(ボソ

WebWorkersではDOMオブジェクトが扱えない!!

WebWorker内で画像ファイルからのJavaScriptの取得は諦めて、 WebWorker外、つまり、動的にWebWorkersを生成すれば大丈夫!

動的にWebWorkersを生成するには

動的にWebWorkerを作成して動かす

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment