如何在Android中从位图对象获取MIME类型?

6

我希望获取位图对象的MIME类型。 实际上,我使用了压缩位图的方法

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

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


1
也许您在谈论outMimeType()方法? - Dmitry
1个回答

3

像Dmitry建议的那样,如果你手头有一张压缩过的图片流,那么你确实需要使用BitmapFactory对其进行解码以确定其类型。(从技术上讲,你也可以自己读取流并对其运行自己的临时文件格式检查,但我想你可能更愿意使用现有工具而不是自己开发。)

你可以并且应该进行的一个优化是将BitmapFactory.Options.inJustDecodeBounds设置为避免在只想知道图片类型时不必要地解码整个图像。解码后,outMimeType属性应该给出图片的类型。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接