我正在尝试使用base64.java转换并使用
将图像转换为字符串String image_str = Base64.encodeToString(bitmap, Base64.DEFAULT);
问题是它强调.DEFAULT表示DEFAULT无法解析或不是字段。现在我在每个例子中都看到我发现这是他们使用的,所以当我尝试它时为什么它不起作用呢?
它的整个功能看起来像
private void previewCapturedImage() {
try {
// hide video preview
imgPreview.setVisibility(View.VISIBLE);
// bimatp factory
BitmapFactory.Options options = new BitmapFactory.Options();
// downsizing image as it throws OutOfMemory Exception for larger
// images
options.inSampleSize = 8;
final Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath(),
options);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String image_str = Base64.encodeToString(b, Base64.DEFAULT);
imgPreview.setImageBitmap(bitmap);
} catch (NullPointerException e) {
e.printStackTrace();
}
}
谢谢你, 泰勒
答案 0 :(得分:2)
导入android.util.base64而不是org.apache.commons.codec.binary.Base64?
答案 1 :(得分:1)
尝试仅使用com.sun.org.apache.xerces.internal.impl.dv.util.Base64
和String encode(byte[] binary)
byte[] decode(String s)
类
这可能a)不适用于android和b)在将来的Java版本中删除。
答案 2 :(得分:1)
您使用的是正确的Base64类吗?基于你的代码示例,它应该是android.util.Base64(检查你的导入中有什么)。
答案 3 :(得分:1)
您的代码看起来就像我实现的那样。我唯一能想到的就是确保你要导入android.util.Base64,这些API是在API 8中添加的,所以如果你的目标低于那个,那么你就会遇到问题。