1. ホーム
  2. android

[解決済み] 画像をBase64文字列に変換するにはどうすればよいですか?

2022-04-27 06:26:05

質問

画像(最大200KB)をBase64文字列に変換するコードは?

メインアプリにリモートサーバーに画像をアップロードする機能を追加し、データベースの1行に文字列として格納する必要があるため、Androidでそれを行う方法を知る必要があります。

GoogleやStack Overflowで検索していますが、私が買えるような簡単な例は見つからず、また、いくつかの例を見つけましたが、それらはStringに変換することについて話していません。そして、私はリモートサーバーにJSONでアップロードするために文字列に変換する必要があります。

どのように解決するのですか?

AndroidのBase64クラスを使用することができます。

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);

しかし、画像をバイト配列に変換する必要があります。以下はその例です。

Bitmap bm = BitmapFactory.decodeFile("/path/to/image.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); // bm is the bitmap object
byte[] b = baos.toByteArray();

* アップデート

古いSDKライブラリを使用している場合(OSのバージョンが古い携帯電話で動作させたいため)、Base64クラスはパッケージ化されていません(APIレベル8 AKAバージョン2.2で登場したばかりのためです)。

この記事で回避策を確認してください。

Androidのbase64エンコードデコード方法