所以,我有一个想要保存和加载的Bitmap图像。保存时我首先将其转换为byte []值,然后使用save();保存它。 当我尝试通过检查它的字符串值来检查它是否有效(检查是否为null)我得到这样的东西:“[B @ 16166c9a” 然后,我将其转回Bitmap值,但在执行此操作后,位图值仍为空。
这是我用来保存的代码:
public void saveImage(){
imageToSave = Utilities.getBytes(backGround);
}
这是我用来加载的代码:
public void updateImage(){
backGround = Utilities.getImage(imageToSave);
}
这是Utilities类:
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import java.io.ByteArrayOutputStream;
public class Utilities {
public static byte[] getBytes(Bitmap bitmap)
{
ByteArrayOutputStream stream=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG,100, stream);
return stream.toByteArray();
}
public static Bitmap getImage(byte[] image)
{
return BitmapFactory.decodeByteArray(image, 0, image.length);
}
}
其余代码可在此处获取:
https://github.com/smholsen/BigDayCountdown/tree/master/app/src/main/java/com/simonm/bigdaycountdown
对于乱码和错误的评论感到抱歉。
我非常感谢任何帮助! :)
答案 0 :(得分:0)
这是一个非常适合我的课程。
public class ImageUtil {
public static byte[] GetByteFromBitmap(Bitmap bmp)
{
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
return stream.toByteArray();
}
public static Bitmap convertByteArrayToBitmap(byte[] byteArrayToBeCOnvertedIntoBitMap)
{
Bitmap bitMapImage = BitmapFactory.decodeByteArray(
byteArrayToBeCOnvertedIntoBitMap, 0,
byteArrayToBeCOnvertedIntoBitMap.length);
return bitMapImage;
}}