私はバックエンドによって私に送られてきたbase64 String Imageの変換に問題があります。カメラbase64イメージをビットマップに変換できません
バックエンドがデータを送信する方法です。
final ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
ImageIO.write(img, formatName, Base64.getEncoder().wrap(os));
return os.toString(StandardCharsets.ISO_8859_1.name());
} catch (final IOException ioe) {
throw new UncheckedIOException(ioe);
}
これは変換方法です。
final byte[] data = Base64.decode(base64, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(data, 0, data.length);
結果は常にnullです。どんな助けも高く評価されます。
EDIT:
は、これらのバックエンド・コードです。
@Override
public BufferedImage base64ToImage(String base64Image) throws IOException {
byte[] imageBytes = Base64.getDecoder().decode(base64Image);
BufferedImage img = ImageIO.read(new ByteArrayInputStream(imageBytes));
return img;
}
public static String imgToBase64String(final RenderedImage img, final String formatName) {
final ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
ImageIO.write(img, formatName, Base64.getEncoder().wrap(os));
return os.toString();
} catch (final IOException ioe) {
throw new UncheckedIOException(ioe);
}
}
そしてこれは、バックエンドへのBase64画像列を送信する前に私たちの変換ツールです。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
return Base64.encodeToString(baos.toByteArray(), Base64.NO_WRAP);
で復号化が行われているdata' 'の長さは何ですか? @EricB。 –
。 372255、TIA – Bryan
私の場合、画像サイズが1 MBを超えると、エラーが発生したり、何もしないことがあります。あなたはこのリンクを試すことができます:https://www.simplifiedcoding.net/android-volley-tutorial-to-upload-image-to-server/ ---これがあなたを助けてくれることを願っています。 –