浏览器针对Jfif1.01格式的兼容性问题引发的问题

浏览器针对Jfif1.01格式的兼容性问题引发的问题

编者:李国帅

qq:9611153 微信lgs9611153

时间:2019/8/13

 

调试问题有时候就像是在破案,曲曲折折的也不一定能找到答案。

 

问题

         腾讯tim的android端拍照发送Jpg图片,然后使用im的web端(Google浏览器)查看,缩略图可显示,放大图不可显示。

 

解决流程

阶段

1、

         测试:缩略图和放大图域名不同

         结论,可能是web跨域问题

2、

         测试:ios端拍照上传图片,web端可以查看大图

         结论,图片问题

3、

         测试:android端发送的本机图片,web端可以查看大图。可以查看的图片和不可查看的图片域名相同。

         结论,排除跨域问题

4、

         测试:web端接收大图图片,重新在android端发送,web端接收后不能查看。

         结论,tim文件服务器图片问题。

5、

         测试:android拍照发送的图片较小,本机图片较大

         结论,大图片可以正常查看。

6、

         测试:android拍照发送图片,然后在web端不能查看,下载该图片。在图片查看器正常。

         结论,图片没问题。

7、

         测试:android拍照发送图片,然后在web端(火狐,QQ浏览器)在正常。

         结论,浏览器问题。

8、

         测试:android拍照发送图片,使用android studio的device file explorer把该图片下载到PC。

         结论,该图片有问题。后来发现从device file explorer下载的图片因为权限不够,图片的EOI丢失。

         ERROR: Early EOF - file may be missing EOI

         (基于错误的观察,会得出错误的结论,建立在错误观点之上的任何推理都可以认为是错误的。)

 

9、

         测试:android拍照发送图片,直接保存到sdcard,把该图片下载到PC。

         结论,该图片无问题。

10、

         测试:新下载Google浏览器,打开IMweb端查看图片,直接android拍照上传图片,可以正常查看。

         结论,某些版本的Google浏览器对某些格式的jpg图片存在兼容性问题。

11、

         测试:查看发送端正常的图片和不正常的图片,比较其属性。

 

                   不可打开的jpg

                   *** Marker: APP0 (xFFE0) ***

                     OFFSET: 0x00000002

                     length     = 16

                     identifier = [JFIF]

                     version    = [1.1]

                     density    = 1 x 1 (aspect ratio)

                     thumbnail  = 0 x 0

 

                   可打开的jpg

                   *** Marker: APP0 (xFFE0) ***

                     OFFSET: 0x0000056C

                     length     = 16

                     identifier = [JFIF]

                     version    = [1.2]

                     density    = 1 x 1 (aspect ratio)

                     thumbnail  = 0 x 0

 

         结论,Google浏览器Jfif1.01版本的jpg图片存在兼容性问题。

         Bitmap.compress只能转换为Jfif1.01格式,如果要转换为Jfif1.02必须使用第三方jpeg库。或者是先拍照保存到本地,然后上传。

 

解决方法

         1、产品部说服用户使用指定浏览器

         2、如果非要使用Google浏览器,使用兼容性好的稳定版本。

         3、请求腾讯修改IM文件服务器的图片格式,将上传的图片转换为常用Jfif1.02格式。

         4、APP上传图片时,如果要发送jpg,那么使用Jfif1.02格式。(总不至于还要进行Jfif格式转换吧?)

 

结果

不过,在左右为难的时候,好在问题消失了,可能腾讯的IM文件服务器程序已经解决了这个问题。

也搞不清楚,追踪了2天,算不算是毫无价值的牺牲。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微澜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值