Android可以在两个地方得到一张Jpeg图片的Orientation:
1. MediaStore,在数据库里存着
2. EXIF信息
最近项目里要存Jpeg,想当然地以为把Orientation值存EXIF信息或者存MediaStore两者选一即可
于是按着原生Camera的方法存了Exif,而insert到MediaStore时没有存Orientation。
结果Gallery里显示Orientation总是0。
最后发现:
1. Gallery读Jpeg图,不会自己读Exif的Orientation。它只从MediaStore读Orientation.
2. 如果你存图的时候不自己Insert 到mediastore,那么没问题。因为Android 扫描的时候会把正确的Exif信息扫描到MediaStore中(所以你push一张带Exif的jpeg到手机,然后reboot一下,你在Gallery里看到的Exif信息是对的。)
3. 如果你自己存图,并且自己insert条目到mediastore, 那么你必须自己填上正确的信息给mediastore。例如:有orientation, 那么你就要把orientation值填进条目中。