什么是MINI_THUMB_MAGIC以及如何使用它?

and*_*per 6 sql android mediastore android-contentresolver android-gallery

背景

我注意到MediaStore.Images.ImageColumns的一个奇怪的列叫做" MINI_THUMB_MAGIC ".

文档说的只是:

迷你拇指id.

类型:INTEGER

常数值:"mini_thumb_magic"

这个问题

我的猜测是这个字段与MediaStore.Images.Thumbnails有关.

这是对的吗 ?如果没有,这是什么以及如何使用它?

如果它是正确的,我还有其他相关的问题:

  1. 它是原始图像的迷你尺寸图像吗?它使用相同的宽高比还是对它进行中心裁剪?

  2. 为什么"MICRO"的大小是方形(96 x 96),"MINI"的大小是非方形矩形(512 x 384)?

  3. 你如何使用它?我的猜测是,它是通过使用"做THUMB_DATA ",这是一个blob,所以你使用它像这样,但是那又有什么用"的宗旨getThumbnail "如果你已经有了这个领域?

  4. 如果方向值不为0,它会获得旋转的缩略图吗?意思是如果我想展示它,我不需要旋转图像?

  5. 是否可以与缩略图一起查询图像?也许使用内连接?

  6. 它适用于所有Android设备和版本吗?

  7. 为什么它甚至被称为"魔术"?是因为它也适用于视频(由于某种原因,音乐不存在,例如,它可能是专辑的封面照片)?

小智 2

检查Android源代码中的此文件: https://github.com/android/platform_packages_providers_mediaprovider/blob/master/src/com/android/providers/media/MediaThumbRequest.java 。该值是一些神奇的数字,可以确定缩略图是否仍然有效。我没有进一步调查该文件,但深入研究应该不成问题。对于您的问题:

  1. 不,没有迷你尺寸的图像
  2. 好吧,我想这是谷歌的定义,谷歌希望为某些列表提供方形缩略图,其中只能看到非常小的预览,并且许多项目应该适合屏幕,还有另一种缩略图格式,其中图像更大......
  3. 我不知道,但根据谷歌的文档,一个(THUMB_DATA)只是缩略图的一些原始字节数组(不知道哪种格式),另一个(getThumbnail)检索一个成熟的位图对象......
  4. 不知道
  5. 不知道
  6. 我想是的,因为它是 AOSP 源代码的一部分。
  7. “魔法”这个词经常用于某种标识符。有一些“魔术数据包”可以通过网络将计算机从睡眠或关机状态唤醒,硬盘上有魔术数字,其中某些扇区(例如MBR)在其最后两个字节位置上有十六进制值AA 55,有也是图像文件中的幻数,可帮助软件包确定图像类型(例如,GIF 文件以 GIF89a 或 GIF87a (ASCII) 开头,JPEG 文件以十六进制 FF D8 开头),还有很多很多的例子。所以,幻数在这里是一个非常常见的术语:-)