有几种方法可以将位图转换为字符串,反之亦然?

在我的应用程序中,我想以字符串形式将位图图像发送到服务器,我想知道有多少种方法可以将位图转换为字符串。现在,我正在使用Base64格式进行编码和解码,它需要占用更多的内存。还有其他可能性以不同的方式做同样的事情,从而减少了内存消耗。现在我正在使用此代码。

Resources r = ShowFullImage.this.getResources();

Bitmap bm = BitmapFactory.decodeResource(r, R.drawable.col);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object

byte[] b = baos.toByteArray();

String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);

回答:

public String BitMapToString(Bitmap bitmap){

ByteArrayOutputStream baos=new ByteArrayOutputStream();

bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);

byte [] b=baos.toByteArray();

String temp=Base64.encodeToString(b, Base64.DEFAULT);

return temp;

}

这是将字符串转换为位图的相反过程,但字符串应为Base64编码

/**

* @param encodedString

* @return bitmap (from given string)

*/

public Bitmap StringToBitMap(String encodedString){

try {

byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT);

Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);

return bitmap;

} catch(Exception e) {

e.getMessage();

return null;

}

}

以上是 有几种方法可以将位图转换为字符串,反之亦然? 的全部内容, 来源链接: utcz.com/qa/409264.html

回到顶部