如何使用Base64编码将ImageView图像转换为字节码?

时间:2012-02-17 09:32:57

标签: android image imageview encode

我正在处理图片。在我的应用程序中,我显示了一个来自drawable的图像,并将该可绘制图像设置为ImageView。当我单击一个按钮时,我想使用Base64将ImageView图像编码为字节代码。

我已经实现了如下代码:

((ImageView)findViewById(R.id.imageView1)).setImageResource(R.drawable.person);

((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        ((TextView)findViewById(R.id.textView1)).setText("Get((ImageView)findViewById(R.id.imageView1)) image Base64.encode() here");
    }
});

如何将编码的imageView1图像转换为字节码?

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:3)

试试这个......

    Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.images);
    ByteArrayOutputStream stream=new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
    byte[] image=stream.toByteArray();
    System.out.println("byte array:"+image);

    String img_str = Base64.encodeToString(image, 0);
    System.out.println("string:"+img_str);

现在将该字符串设置为Textview

    tv.setText(img_str);

答案 1 :(得分:1)

使用此

public String encode(Bitmap icon) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        icon.compress(Bitmap.CompressFormat.PNG, 50, baos);
        byte[] data = baos.toByteArray();
        String test = Base64.encodeBytes(data);
        return test;
    }`

答案 2 :(得分:1)

看看这段代码,

Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.person)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bMap .compress(Bitmap.CompressFormat.PNG, 100, baos);
//bMap is the bitmap object
byte[] b = baos.toByteArray(); 
String encodedString = Base64.encodeToString(b, Base64.DEFAULT)