3 ответов:
public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality) { ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream(); image.compress(compressFormat, quality, byteArrayOS); return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT); } public static Bitmap decodeBase64(String input) { byte[] decodedBytes = Base64.decode(input, 0); return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length); }пример использования:
String myBase64Image = encodeToBase64(myBitmap, Bitmap.CompressFormat.JPEG, 100); Bitmap myBitmapAgain = decodeBase64(myBase64Image);
надеюсь, что это поможет вам
Bitmap bitmap = BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri));(если вы ссылаетесь на URI для построения растрового изображения) Или
Resources resources = this.getResources(); Bitmap bitmap= BitmapFactory.decodeResource(resources , R.drawable.logo);(если вы ссылаетесь на drawable для построения растрового изображения)
тогда Закодируйте его
ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] image = stream.toByteArray(); String encodedImage = Base64.encode(image, Base64.DEFAULT);для декодирования логика будет точно обратной кодировке
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
для кодирования bimap в изображение:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 80, byteArrayOutputStream); byte[] imageBytes = byteArrayOutputStream.toByteArray(); String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); Log.d("bytearray", String.valueOf(byteArrayOutputStream.toByteArray())); Log.d("encodedimage",encodedImage);
Comments