var data_url = canvas.toDataURL( "image/png");javascriptでHTML5 Canvas.todataurlファイルサイズを取得するには?
var img = $( "#img")。attr( "src"、data_url);
img kbでのファイルサイズは?
var data_url = canvas.toDataURL( "image/png");javascriptでHTML5 Canvas.todataurlファイルサイズを取得するには?
var img = $( "#img")。attr( "src"、data_url);
img kbでのファイルサイズは?
あなたはバイト単位でデータのURLのサイズを知りたい場合は、あなたが行うことができます:
var imgFileSize = data_url.length;
をしかし、それはPNGのサイズの実際の大きさではありません。 Base64エンコーディングは4/3のオーバーヘッドを持っているので
var head = 'data:image/png;base64,';
var imgFileSize = Math.round((data_url.length - head.length)*3/4) ;
:あなたは非常に正確に、実際のPNGのサイズに、このように近似することができます。
編集:コメント後のサイズ計算を修正しました。
正確ペドロのソリューションは、私がやったことはcanvas.toBlob(function(blob){
alert(blob.size);
});
canvas.toBlobは、この時点でワーキングドラフトでファイルサイズを取得し、その後、キャンバスの外にBLOBを作成し、したことが
申し訳ありませんBase64には4/3のオーバーヘッドがあるため、元のファイルはBase64の3/4分の1になります。私は答えを修正しました。 –
Base64 = 4/3 *オリジナル、オリジナル= 3/4 * Base64 –
+1あなたは本当に正しいです。そして私はもう数学を知らない...: - |これは厄介な週だった(うーん)。 – K3N
私は見つけられませんでしたが、私はcanvas.mozGetAsFileでも仕事ができるが、私はテストしていませんそれについて考えるために
最良の方法は、各文字は、6ビット(2^== 64を、表していることだと思うpollyfill
を使用しましたそれゆえにベース)。あなたが持っているcharsの量を合計すると、合計ビット数が6になります。次に、バイトが8ビットであるため、合計ビット数を8で割ってバイト数を取得します。 Math.round(base64String.length * 3/4);
と同じである
Math.round(base64String.length * 6/8);
。
どのファイルがありますか。ここにファイルはありません。 –