gpt4 book ai didi

android - 位图 toString 并再次返回

转载 作者:行者123 更新时间:2023-11-29 15:28:43 25 4
gpt4 key购买 nike

在 android 中,我用摄像头拍了一张照片并将其返回到我的 Activity 中:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
if (requestCode == Constatnts.ANSWER_TO_LIFE_UNIVERSE_AND_EVERYTHING && data != null && data.getExtras() != null && data.getExtras().get("data") != null) {
Bitmap snapshot = (Bitmap) data.getExtras().get("data");
String convert = InputOutput.bitmapToString(this, snapshot);
Bitmap back = InputOutput.stringToBitmap(convert);
}
}

当我将位图“快照”分配给 ImageView 时,它看起来非常好并且运行良好。但是,当我将位图“返回”分配给 ImageView 时,它不会更改其 View 。因此转换中一定有问题。这是我的转换代码:

public static Bitmap stringToBitmap(String bitmapString) {
byte[] bytes = Base64.decode(bitmapString, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
return bitmap;
}

public static String bitmapToString(Context context, Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
bitmap.recycle();
byte[] byteArray = stream.toByteArray();
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
stream.write(byteArray, 0, byteArray.length);
stream = null;
String strBase64 = Base64.encodeToString(byteArray, Base64.URL_SAFE);
return strBase64;
}

这里出了什么问题有什么建议吗?谢谢!

最佳答案

这是我曾经用来尝试这种转换的代码,它应该可以工作:

public final static String bitmapToString(Bitmap in){
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
in.compress(Bitmap.CompressFormat.PNG, 100, bytes);
return Base64.encodeToString(bytes.toByteArray(),Base64.DEFAULT);
}
public final static Bitmap stringToBitmap(String in){
byte[] bytes = Base64.decode(in, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}

不过,您可能希望向流中添加一些 close() 调用。

关于android - 位图 toString 并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com