如何将 .png 图像转换为字节数组 - Android,TFLITE 应用程序
How do I convert a .png image to a Byte Array - Android, TFLITE application
我制作了一个 TFLITE 模型,我正在使用 Google 的 ML KIT 从我的移动应用程序访问它.我 运行 在尝试将我的数据转换为 byte[1][299][299][3]
格式时遇到了麻烦,我需要将其提供给分类器。
我正在尝试将 bytestream
排列成那种格式,但我不知道它是否正在提供 left-right
、top-bottom
、R-G-B 等
任何人都可以指出一些我可以阅读的关于解析 .png
文件的文档吗?
您可以使用 BitmapFactory
和 InputStream
.
将 .png 文件转换为 Android Bitmap
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] image = stream.toByteArray();
使用Bitmap,您还可以获得指定位置像素的颜色。不幸的是,颜色返回为 int
,您必须将其分解为 RGBA 值。为此,请参阅:https://developer.android.com/reference/android/graphics/Color
我制作了一个 TFLITE 模型,我正在使用 Google 的 ML KIT 从我的移动应用程序访问它.我 运行 在尝试将我的数据转换为 byte[1][299][299][3]
格式时遇到了麻烦,我需要将其提供给分类器。
我正在尝试将 bytestream
排列成那种格式,但我不知道它是否正在提供 left-right
、top-bottom
、R-G-B 等
任何人都可以指出一些我可以阅读的关于解析 .png
文件的文档吗?
您可以使用 BitmapFactory
和 InputStream
.
Bitmap
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] image = stream.toByteArray();
使用Bitmap,您还可以获得指定位置像素的颜色。不幸的是,颜色返回为 int
,您必须将其分解为 RGBA 值。为此,请参阅:https://developer.android.com/reference/android/graphics/Color