1

次のコードを使用して、バイト配列から画像データ URL を生成しようとしています。

ByteArrayOutputStream byteArrayOutStream = new ByteArrayOutputStream();

/* Fill byteArrayOutStream with data */

StringBuilder stringBuilder = new StringBuilder();

String encodedData = Base64.encodeToString(byteArrayOutStream.toByteArray(),
                                           Base64.NO_WRAP);

stringBuilder.append("data:image/jpeg;base64,");
stringBuilder.append(encodedData);

// Log the result
android.util.Log.d("Base64Test", stringBuilder.toString());

byteArrayOutStreamjpgファイルとして保存してデバイスで表示することをテストしたため、正しいデータが含まれています。

logcat の結果をファイルにパイプし、行全体をコピーして Chrome に貼り付けることで、データ URL 出力をテストします。

クロムに表示されるものは完全に空白です。Chrome インスペクタで確認すると、正しいサイズの空白の JPG があります。

jpgファイルでダウンロードしてWindowsフォトビューアーで開いてみました。破損しているようです:

破損した画像のサンプル

ただし、画像の左上隅に見える部分だけが正しいデータです。

4

1 に答える 1