我想将路径图像的字符串转换为字节数组,而不是将其转换为Bitmap。
我有错误:
09-25 09:38:11.050:
W/System.err(21261): java.lang.IllegalArgumentException: bad base-64
09-25 09:38:11.350:
W/System.err(21261): at android.util.Base64.decode(Base64.java:161)
09-25 09:38:11.350:
W/System.err(21261): at android.util.Base64.decode(Base64.java:136)
09-25 09:38:11.350:
W/System.err(21261): at com.up.upload.MainActivity.UploadImage(MainActivity.java:186)
09-25 09:38:11.350:
W/System.err(21261): at com.up.upload.MainActivity$2.run(MainActivity.java:149)
09-25 09:38:11.350:
W/System.err(21261): at java.lang.Thread.run(Thread.java:841)
我想我做得不对,但我知道为什么。
非常感谢你的帮助。
提前致谢
我的代码如下:
String lStr = "/storage/emulated/0/image.jpg"
byte[] data = Base64.decode(lStr.getBytes(), 0);
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
Request.addProperty("docbinaryarray", bmp);
答案 0 :(得分:2)
你做错了,伙计。您的代码仅转换String,而不是该路径中的图像数据。试试这个:
File imgFile = new File("/storage/emulated/0/image.jpg");
if(imgFile.exists()){
Bitmap bmp = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
Request.addProperty("docbinaryarray", bmp);
}
答案 1 :(得分:1)
你这样做完全错了:
使用:
File mFile = new File("/storage/emulated/0/image.jpg");
if(mFile.exists()){
Bitmap bmp = BitmapFactory.decodeFile(mFile.getAbsolutePath());
}
答案 2 :(得分:0)
public static String encodeToBase64(String string)
{
String encodedString = "";
try
{
byte[] byteData = null;
if(Build.VERSION.SDK_INT >= 8) // Build.VERSION_CODES.FROYO --> 8
{
byteData = android.util.Base64.encode(string.getBytes(),android.util.Base64.DEFAULT);
}
else
{
byteData = Base64Utility.encode(string.getBytes(),Base64Utility.DEFAULT);
}
encodedString = new String(byteData);
}
catch (Exception e)
{
}
return encodedString;
}
如果您正在使用api级别< 8然后下载Base64Utility.java
答案 3 :(得分:0)
如果你想从图像中获取字节数组 - 请尝试下一个代码:
Bitmap bm = BitmapFactory.decodeFile("/path/image.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
答案 4 :(得分:0)
喜欢这个
File imgFile = new File("/sdcard/Images/test_image.jpg");
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
//for drawable
//Drawable d = new BitmapDrawable(getResources(), myBitmap);
ImageView myImage = (ImageView) findViewById(R.id.imageview);
myImage.setImageBitmap(myBitmap);
}