如何从Android中的位图对象获取mime类型?

Vin*_*eet 5 android bitmap mime-types

我想获取位图对象的mime类型。其实我已经压缩了位图使用

bitmap.compress (Bitmap.CompressFormat.PNG , 100, stream);
Run Code Online (Sandbox Code Playgroud)

现在,我要交叉检查格式,outBounds和内存空间大小。但是我不想做一个冗长或乏味的工作。将其转换回流,然后使用带选项的BitmapFactory将其再次转换为BItmap。

Ilm*_*nen 3

就像 Dmitry 所建议的那样,如果您拥有的是流中的压缩图像,那么您确实需要使用 BitmapFactory 对其进行解码以判断它是什么类型。(从技术上讲,您也可以自己读取流并对其运行您自己的临时文件格式检查,但我假设您更喜欢使用现有工具而不是滚动自己的工具。)

您可以而且应该进行的一项优化是设置BitmapFactory.Options.inJustDecodeBounds以避免不必要地解码整个图像(如果您只想知道它是什么类型)。解码后,outMimeType属性应该为您提供图像的类型。

至于你标题中的字面问题,它没有意义。位没有 MIME 类型 — 它只是像素数组的容器。您可以使用各种格式(例如 JPEG、PNG 或 WEBP)将位图压缩为流,但这只是为您提供图像的压缩副本。