我有一个将图像发送到 Web 服务的 Android 应用程序。我想将同一张照片从网络服务发送回 Android。
我编写了一个测试程序来比较从 Android 发送到服务器的 base64 数据和从服务器发送回 Android 的 base64 数据——它们完全相等。
我想使用 base 64 字符串来创建位图,所以我尝试了这个:
String image = client1.getBaseURI("restaurantFoods/OneFood/"
            + this.getID() + "/getImage");
byte[] decodedString = Base64.decode(image, Base64.DEFAULT);
        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,
                decodedString.length);
if(decodedByte == null){
            Log.d(this.getFoodItem().getName(), image);
            Log.d("isNull", "Yes");
        }
        else{
            Log.d("isNull", "No");}
我一直为空,因为日志只打印“是”。
有人可以帮忙吗?
如果您想知道我如何编码图像,如下所示:
private String getBase64(Bitmap bitmap) {
        String imgString = Base64.encodeToString(getBytesFromBitmap(bitmap),
                Base64.NO_WRAP);
        return imgString;
    }
private byte[] getBytesFromBitmap(Bitmap bitmap) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.JPEG, 70, stream);
        return stream.toByteArray();
    }
Bitmap icon = BitmapFactory.decodeResource(this.getResources(),
                    R.drawable.pizza);
String iconBase64 = this.getBase64(icon);