HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0829
ユーヤンbase64で画像ファイルをエンコードしたいのだが…4解決


ユーヤン

リンク

2021/8/29(Sun) 11:15:57|NO.93718

いのびあ氏が公開している、mbase64.asを使用しているのですが、画像ファイルをエンコードしようと思っているのですが、なぜかエンコードしてからデコードしようとするとなぜか落ちてしまいます。
何が原因なのでしょうか。

#include "mbase64.as" dim be,2048 bload "元のファイル.png",be datasize=strsize sdim af,(int(datasize+2)/3)*4 Base64Encode be,datasize,af sdim af2,strlen(af) Base64Decode af,strlen(af),af2 bsave dir_desktop+"\\テスト.png",af2



この記事に返信する


829

リンク

2021/8/29(Sun) 13:16:57|NO.93719

最初のはdimではなくsdimでは?
(int(datasize+2)/3)*4だと少数部分か切り捨てられてしまうので
(datasize*4)/3+2の方がいいかもしれません。



ユーヤン

リンク

2021/8/29(Sun) 13:25:08|NO.93720

変えてみましたがダメでした…。



TOMATO

リンク

2021/8/29(Sun) 14:51:51|NO.93722

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



ユーヤン

リンク

2021/9/12(Sun) 17:14:14|NO.93858

スレッドを見落としてました…!
ありがとうございます!



ONION software Copyright 1997-2023(c) All rights reserved.