6

我想获得位图对象的 mime 类型。实际上我已经使用压缩了一个位图

bitmap.compress (Bitmap.CompressFormat.PNG , 100, stream);

现在我想交叉检查格式、outBounds 和内存空间大小。但我不想做冗长或乏味的任务,例如。将其转换回流,然后使用带有选项的 BitmapFactory 将其再次转换为 BItmap。

4

1 回答 1

4

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

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

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

于 2014-02-11T04:03:35.223 回答