首页 > 解决方案 > 如何将 .png 图像转换为字节数组 - Android、TFLITE 应用程序

问题描述

我已经制作了一个TFLITE模型,并且正在使用Google 的 ML KIT从我的移动应用程序中访问它。我在尝试将我的数据转换为byte[1][299][299][3]我需要提供给我的分类器的格式时遇到了麻烦。

我试图将 a 安排bytestream成那种格式,但我不知道它是否在馈送left-righttop-bottom、 RGB 等。

谁能指出我可以阅读的有关解析.png文件的一些文档?

标签: javaandroidtensorflowtensorflow-litefirebase-mlkit

解决方案


Bitmap您可以使用 aBitmapFactory和.png 文件将您的 .png 文件转换为 Android InputStream

ByteArrayOutputStream stream = new ByteArrayOutputStream();

Bitmap bitmap = BitmapFactory.decodeFile(filePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] image = stream.toByteArray();

使用您的位图,您还可以获得指定位置的像素颜色。不幸的是,颜色返回为int,您必须将其分解为 RGBA 值。为此,请参阅:https ://developer.android.com/reference/android/graphics/Color


推荐阅读