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

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



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.93718への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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