RFC 2045 - MIME規格に準拠?してるようで
76文字ごとに改行コード(CR+LFなので2バイト)が付与されるので、
その分のバッファも足さないとダメかも?
#include "mbase64.as"
元のファイル名 = "元のファイル.png"
出力ファイル名 = dir_desktop+"\\テスト.png"
exist 元のファイル名
元のファイルサイズ = strsize
if (元のファイルサイズ == -1) : dialog "ファイルがありません" : end
sdim 元のファイルバッファ, 元のファイルサイズ
bload 元のファイル名, 元のファイルバッファ
改行なしサイズ = (元のファイルサイズ * 4) / 3 + 2
改行ありサイズ = 改行なしサイズ + (改行なしサイズ / 76) * 2 + 1 // 終端NULL
sdim BASE64テキストバッファ, 改行ありサイズ
Base64Encode 元のファイルバッファ, 元のファイルサイズ, BASE64テキストバッファ
sdim 再変換後のバッファ, strlen(BASE64テキストバッファ)
Base64Decode BASE64テキストバッファ, strlen(BASE64テキストバッファ), 再変換後のバッファ
bsave 出力ファイル名, 再変換後のバッファ
exec 出力ファイル名, 16