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

标签 java android arrays android-bitmap

我正在尝试将 PNG 文件转换为位图,然后转换为 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

关于java - 将 PNG 转换为 Bitmap 到 Byte[] 以存储在 SQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58771185/

相关文章:

java - 如何只将唯一值放入数组?

java - 我想更改单击的任何按钮的大小

ruby - 通过已定义数组元素的子字符串从已定义范围返回子数组

c - C 中二维数组的大小

java - 如何在Android中的AsyncTask中应用此代码?

java - 在 JNA 中定义 HGlobal

java - Java 数组更高效

android-layout - 如何像新的 YouTube 应用程序一样在 Android 手机(未上架)上实现 "SplitView"?

android - 使用 Retrofit2 的 Json 对象请求

php - 通过搜索键和值中的部分匹配来过滤数组元素