base 64ピクチャ符号化サイズと原図ファイルサイズとのつながり


base 64ピクチャ符号化サイズと原図ファイルサイズとのつながり


canvasキャンバスの絵を画像出力ページに変換する必要がある場合がありますが、canvasで生成された画像はbase 64で符号化されています.数字やアルファベットなどの大きな文字から構成されていますが、ファイルストリームのサイズを取得するにはどうすればいいですか?

Base 64ピクチャ符号化原理:


Base 64符号化は、3つの8ビットバイト(3*8=24)を4つの6ビットバイト(4*6=24)に変換し、その後、6ビットの前に2つの0を補い、8ビットの1バイトの形式を形成することを要求する.残りの文字が3バイト未満の場合は0で埋め、出力文字は'='を使用するため、符号化後に出力されるテキストの末尾に1または2'='が現れる可能性があります.
詳細は-base 64の原理を参照してください.

base 64で符号化されたピクチャの文字サイズを知ったら、ピクチャのファイルストリームサイズをどのように計算しますか?


base 64符号化の原理により、base 64のピクチャ文字ストリームの8文字ごとに2つが0で補完され、文字ストリームの末尾に「=」番号が存在する可能性があり、この原理によりピクチャのファイルストリームサイズを計算することができることが分かった.

次に例を示します。


これは画像のbase 64符号化です。

data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAB9SR//fUkf/31JH/99SR//fUkf/31JH/99SR//fUkf/31JH/99SR//fUkf/6mHbP+LXDf/fUkf/31JH/99SR//fUkf/31JH/99SR//fUkf/31JH/99SR//i104/5lwT/+RZkP/fksh/6eFaP/8/Pv/mG9N/31JH/99SR//fUkf/31JH/99SR//fUkf/31JH/+tjHL/6uHb//7+/v////////////Xx7v/8+/r//////6N/Yv99SR//fUkf/31JH/99SR//fUkf/35LIf/PvK3///////////////////////////////////////////+vj3b/fUkf/31JH/99SR//fUkf/31JH/++pI/////////////08Oz/vqSQ/8y3p///////////////////////u6CK/31JH/99SR//fUkf/31JH/+IWDL/+vn3///////s5d//iVo1/6B7XP/6+ff/8Orl/9TDtv+5nYb/nXZX/4NRKf9+SyL/fUkf/31JH/99SR//sJF3////////////onxe/35LIv+ge1z/ils1/31JH/99SR//fUkf/6qIbf/dz8T/1MK0/31JH/99SR//fUkf/8WunP///////Pv7/39MIv99SR//fUkf/31JH/99SR//fUkf/31JH//ay7///////+ri2/99SR//fUkf/31JH//Frpv///////38+/9/TCP/fUkf/31JH/99SR//fUkf/31JH/99SR//2szA///////q4dv/fUkf/31JH/99SR//r491////////////pIBi/31JH/99SR//fUkf/31JH/99SR//hVUt//j29P//////1MK1/31JH/99SR//fUkf/4dXMP/59/b//////+7o4/+MXjn/fUkf/31JH/99SR//gE0k/9XFuP///////////6aDZ/99SR//fUkf/31JH/99SR//up+I////////////9vPw/8OrmP+si3D/uZ2G/+ri2////////////97Rx/99SiD/fUkf/31JH/99SR//fUkf/31KIP/KtqX//v7+/////////////////////////////////+Xb0/+HWDH/fUkf/31JH/99SR//fUkf/31JH/99SR//fUkf/6eFaP/l2tL//v7+////////////8evn/7yhi/+BTyb/fUkf/31JH/99SR//fUkf/31JH/99SR//fUkf/31JH/99SR//fUkf/4dXMP+Uakf/jV86/31JH/99SR//fUkf/31JH/99SR//fUkf/31JH/9/SyH/f0sh/39LIf9/SyH/f0sh/39LIf9/SyH/f0sh/39LIf9/SyH/f0sh/39LIf9/SyH/f0sh/39LIf9/SyH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

便宜上、strの代わりに符号化します.
1.ファイルストリームのサイズを計算する必要があります.まず、ヘッダのdata:image/png;base 64、(カンマに注意)を外します.
str=str.substring(22);

2.等号を見つけ、等号も消す
var equalIndex= str.indexOf(‘=’);
if(str.indexOf(‘=’)>0)
{
    str=str.substring(0, equalIndex);

}

3.元の文字ストリームサイズ、単位バイト
var strLength=str.length;

4.バイト単位で計算されたファイルストリームのサイズ
var fileLength=parseInt(strLength-(strLength/8)*2);

5.出力ファイルストリームサイズ
alert(fileLength);

以上は文章の主要な内容で、問題があったらどうぞ多く交流してください
ファイルストリームピクチャを推奨base 64符号化ストリームピクチャを転送するオンラインツール-base 64変換