0

大家好,我想问你一件事,我有一个传输字符串的聊天,我什至可以在发送它们之前附加 JPEG 图像以将其转换为字符串,然后在 BITMAP 中解码,只是当我解码时它会导致应用程序崩溃。我想知道它是否是正确的解码代码。

            NOME = (TextView) row.findViewById(R.id.comment);
    NOME.setText(coment.comment);
    String a = NOME.getText().toString();

    if(a.length() > 1024 )
    {
        byte[] image = Base64.decode(a, 0);
        int lung = a.length();
        Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, lung);


        Image = (ImageView) row.findViewById(R.id.image);
        Image.setImageBitmap(bitmap);

    }
4

2 回答 2

0

图像编码为字符串 Base64的方法:

public static String encodeToString() {
    String imageString = null;

    try {
        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();  
        bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object   
        byte[] b = baos.toByteArray();
        imageString = Base64.encodeToString(b, Base64.DEFAULT);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return imageString;
}

字符串 Base64 解码为 Image的方法:

public static void decodeToImage(String imageString) {

    try {
        byte[] imageByte = Base64.decode(imageString, Base64.DEFAULT);
        Bitmap bm = BitmapFactory.decodeByteArray(imageByte, 0, imageByte.length); 
        image_view.setImageBitmap(bm);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
于 2013-08-18T15:41:08.660 回答
0

代码看起来不错,如果我不得不猜测我会说您遇到内存不足错误,这在加载图像时很常见。查看

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

加载图像时的一些最佳实践。

于 2013-06-05T16:43:56.663 回答