8

我想将图像转换为 base 64 编码为字符串。从那个以oma_status-iconxml格式发送到服务器。

但我从服务器响应中得到不支持的编码......

有没有其他方法可以将图像转换为 base64 字符串?

请..帮助...

我的代码是:

        Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),  R.drawable.image);

        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 100, bao);
        byte [] ba = bao.toByteArray();

         String ba1=Base64.encodeBytes(ba);
4

5 回答 5

15

请使用此代码..

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),  R.drawable.image);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 100, bao);
byte [] ba = bao.toByteArray();
String ba1=Base64.encodeToString(ba,Base64.DEFAULT);

请导入

import android.util.Base64;
于 2012-09-06T09:54:09.353 回答
3
// convert from bitmap to byte array
public byte[] getBytesFromBitmap(Bitmap bitmap) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.JPEG, 70, stream);
    return stream.toByteArray();
}

// get the base 64 string
String imgString = Base64.encodeToString(getBytesFromBitmap(someImg), 
                       Base64.NO_WRAP);
于 2012-09-06T10:49:39.680 回答
2

试试下面的代码

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte b [] = baos.toByteArray();
String base64String = Base64.encodeToString(b, Base64.DEFAULT);

别忘了import android.util.Base64;

于 2012-09-06T09:54:44.467 回答
1

也许你可以试试

String base64Result = Base64.encodeToString(yourByteArray[], Base64.DEFAULT);

于 2012-09-06T09:55:44.400 回答
1

方法:

private String bitmapToBase64(Bitmap bitmap) {

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
    byte[] byteArray = byteArrayOutputStream .toByteArray();

    return Base64.encodeToString(byteArray, Base64.DEFAULT);
}

进口:

import android.util.Base64;
import java.io.ByteArrayOutputStream;
于 2016-05-16T09:04:35.597 回答