38

私はミニマリストの画像作成プロジェクトに取り組んでおり、サーバーで使用されるブラウザ内で画像を作成する機能が必要です。これまでのところ、この方法は私たちのニーズを満たしていますが、より便利な方法をCanvas.toDataUrl()知ったばかりです。Canvas.toBlob()

メソッドがtoBlob()仕様に追加されたのは数か月前のようです (いつ追加されたかについての直接的な参照は見つかりません)。

どのブラウザがサポートtoBlobしているか、さらに重要なことに、それらのブラウザのどのバージョンにメソッドの統合が含まれていましたか? さらに、この機能のサポートは「バグ」ですか、それとも主要なブラウザーで開発中ですか?

アップデート

私はこの質問を8年近く前にしました。メソッドのステータスに関する更新を待って、以前に言及したプロジェクトを提出しましたcanvas.toBlob()toBlob()私が Web で収集できる情報によると、一部のブラウザーでは の実装が少しずつ使用されているようです。

canvas.toBlob()HTML5 キャンバス オブジェクトの統合を開始したブラウザーの間で、この方法はどの程度普及しているのか、また、このサポートを最初に統合したのはこれらのブラウザーのどのバージョンなのか、もう一度お尋ねします。

4

5 に答える 5

36

2016年2月現在、これらのブラウザはサポートしていますtoBlob()

この回答は元々2011年に書かれたものであることに注意してください。以下の元の回答/編集。


toBlob()本当に新しいので、特定のブラウザーを使用するように明示的に要求できない限り(または環境を制御できない限り)、コンシューマーアプリで使用することはお勧めしません。

toBlob()5月12日に追加され、定義どおり機能が制限されています。Chromeの夜間、Firefoxの夜間、IE9には存在しません。

Firefoxには機能的なmozGetAsFileがあることに注意してください。

Chromeに追加するための議論はまだありません。

Firefoxの議論。彼らは、実装を試みる前に、仕様がより明確になるまで待つことにしました。

の仕様toBlob()は非常にあいまいで、多くの内部質問がまだ解決されていません。彼らはまだ典型的な使用を可能にするためにどのパラメータを許可するかさえわかりtoBlob()ません。


2012年4月10日に更新

toBlobはまだサポートを享受していません。Chrome Canary(Nightly)、Firefox Nightly、IE9にはまだ存在しません。

Chromeスターのアップデートを監視したい場合は、次のようにします。

http://code.google.com/p/chromium/issues/detail?id=67587

Firefoxのアップデートを監視したい場合は、ここでこのバグをサブスクライブしてください。

https://bugzilla.mozilla.org/show_bug.cgi?id=648610

更新: 2016年2月21日の時点で、.toBlobはchrome 50(現在はカナリア)で動作するようになりました

于 2011-07-18T16:38:20.947 に答える
7

canvas.toBlob() 関数の優れた JavaScript 実装があり、ネイティブの FireFox mozGetAsFile() 関数も含まれています。

https://github.com/blueimp/JavaScript-Canvas-to-Blob

于 2013-09-30T17:40:05.903 に答える
7

必要な場合は、この js ファイルがまだサポートされていないブラウザーで toBlob 関数を実装します: https://github.com/eligrey/canvas-toBlob.js

ここに著者による投稿があり、ここに展開されたソースコードがあります。

ただし、このライブラリでもすべてのブラウザで動作するとは限らないようです。

「機能するにはBlobBuilderのサポートが必要ですが、これはすべてのブラウザーに存在するわけではありません」

于 2012-04-05T02:27:12.373 に答える
1

この機能がそれほど進んでいないのは残念ですが、そのステータスを知ることができてうれしいです (thx Simon)。

当面の間、この回答は、base64 でエンコードされた dataUri 文字列の肥大化を排除することにより、バイナリ アップロードのネットワーク効率を達成するための優れた回避策を提供します。明らかに、最新のブラウザーでのみサポートされていますが、拡張機能を作成している場合、または最先端のブラウザーへの依存関係を取得する準備ができている場合は、優れたオプションになる可能性があります。

于 2011-10-22T07:40:28.590 に答える