将 PNG 转换为 Bitmap 到 Byte[] 以存储在 SQL

Converting PNG to Bitmap to Byte[] to store in SQL

我正在尝试将 PNG 文件转换为 Bitmap 并转换为 Byte[],这样我就可以将图像存储在我的 SQL 数据库中。

正在将 PNG 转换为位图。

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true; 

Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.MyPicture, options)

将位图转换为字节[]

ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, stream);

byte[] bArray = stream.toByteArray();

插入数据库

MainViewModel myViewModel = ViewModelProviders.of(this).get(MainViewModel.class);

MyEntity myEntity = new MyEntity(bArray);
myViewModel.insert(myEntity);

我目前在代码的 b.compress 行中收到 NullpointException。

感谢所有帮助。

您的位图为空,因为您已设置 options.inJustDecodeBounds = true 并将此选项变量传递给 decodeResource() 函数。阅读 these docs