base 64に関する操作
1736 ワード
参照可能なドキュメントbase 64中国語参照ドキュメント
baseによるファイルの処理は、ファイルの復号化処理であり、対応するファイルの読み書き操作を使用する.
base 64文字列からピクチャサイズを計算する
Base 64符号化は、3つの8ビットバイト(38=24)を4つの6ビットバイト(46=24)に変換し、その後、6ビットの前に2つの0を補い、8ビットの1バイトの形式を形成することを要求する.残りの文字が3バイト未満の場合は0で埋め、出力文字は'='を使用するため、符号化後に出力されるテキストの末尾に1または2つの'='(1または2バイト以上)が現れる可能性があります.
base 64復号化
// base64 byte
func DecodeToByte(data []byte) ([]byte, error) {
enc := base64.StdEncoding
dbuf := make([]byte, enc.DecodedLen(len(data)))
n, err := enc.Decode(dbuf, data)
return dbuf[:n], err
}
// base64
func DecodeToString(data []byte) (string, error) {
enc := base64.StdEncoding
dbuf := make([]byte, enc.DecodedLen(len(data)))
n, err := enc.Decode(dbuf, data)
return string(dbuf[:n]), err
}
// byte
func EncodeToByte(src []byte) []byte {
enc := base64.StdEncoding
buf := make([]byte, enc.EncodedLen(len(src)))
enc.Encode(buf, src)
return buf
}
// base64
func EncodeToString(data []byte) (string) {
return base64.StdEncoding.EncodeToString(data)
}
ファイル処理
baseによるファイルの処理は、ファイルの復号化処理であり、対応するファイルの読み書き操作を使用する.
base 64文字列からピクチャサイズを計算する
Base 64符号化は、3つの8ビットバイト(38=24)を4つの6ビットバイト(46=24)に変換し、その後、6ビットの前に2つの0を補い、8ビットの1バイトの形式を形成することを要求する.残りの文字が3バイト未満の場合は0で埋め、出力文字は'='を使用するため、符号化後に出力されるテキストの末尾に1または2つの'='(1または2バイト以上)が現れる可能性があります.
ff, _ := ioutil.ReadFile("image/19155559_E3nk.jpg") //
fmt.Println(" =====",len(ff))
buf_store:=EncodeToByte( ff) // base64
_ = ioutil.WriteFile("image/output2.jpg.txt", buf_store, 0666) // ok 。
fmt.Println(" base64 =====",len(buf_store))
count:=strings.Count(string(buf_store), "=")
noeq:=string(buf_store)[0:strings.Index(string(buf_store), "=")]
fmt.Println(" =====",len(noeq))
fmt.Println(" =====",float32(len(noeq))/float32(len(ff)))
fmt.Println("base64 =====",int(float32(len(buf_store))*3/4)-count)