前段时间用无人机拍了一些全景图片准备发在微博, 毕竟我可是为数不多的新浪微博 全景达人 认证 / 哈哈哈.jpg
我的微博: 芊云全景
使用工具恢复数据之后我发出去的微博全景: https://m.weibo.cn/z/panorama?oid=1042143:4469411109601303
后来才发现, 使用无人机合成的全景图片新浪微博无法识别, 而且QQ空间也无法识别, 当时我就猜测是因为 exif 信息被删掉导致的, 最近回京了., 疫情还是很严重, 在家办公有时间了, 就抽空做了一个小工具, 用来恢复 全景图丢失的图片 exif 数据!
https://vr.he29.com/v3/plugin/exif/.html
刚开始我的想法是, 使用 exif.js 来直接读取 图片的 exif 信息, 然后使用 piexif.js 直接写入, 然后保存, 都不经过服务端, 客户端网页直接处理完, 后来才发现不是这样!
普通图片的exif 信息可以这样恢复, 但是全景图片不行, 我来回对比, 几乎把 exif 所有信息全部恢复了, 微博也无法识别, 后来才发现, 全景图片的特殊性, 要操作图片元数据里面的 GPano 才可以,
而xmp元数据, 我使用js在客户端来回折腾也无法修改和恢复(技术太差);
而要识别为全景图, 只需要 在元数据里加入
<GPano:ProjectionType>equirectangular</GPano:ProjectionType>
<GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>
就可以, 但是 客户端又无法操作, 所以只能通过cdn网络走服务端了!
于是先把图片上传到cdn, 然后通知php服务去操作 xmp 元数据, 操作完成之后, 为了速度更快, 又上传到cdn, 客户端再展示., 后来为了节省cdn资源, 又做了延迟队列, 10分钟之后删除图片等等,.
队列使用的是redis的订阅发布机制, 之前博文有写过: http://blog.he29.com/wblog/?p=1161
不过最终是完成了, 就是传输速度还是不快, 如果是超过5M的全景图, 则需要等待10s以上~~
芊云全景 PC 端也可以直接使用此工具了, 电脑端请直接打开: https://vr.he29.com/v3/tour/repair
不过, 目前网络上用来恢复全景图数据的插件很少, 我只看到一个使用.bat文件来恢复的脚本, 这个小工具应该可以帮助到不少的人!
扫描二维码用手机来试试看吧!