欢迎光临散文网 会员登陆 & 注册

图表保存下来不清晰怎么办?教你获取专栏图片原图

2020-05-21 01:56 作者:进栈检票  | 我要投稿

我的ARK数据整理表终于实现了跨平台更新。高兴之余,我很快就发现了一个问题:图片不清晰啊!!

如下图所示,直接右键打开或另存的专栏图片不是很清晰,不能满足打印需求。

不清晰的表格图片

很快我把目光放到了地址栏:

i0.hdslb.com/bfs/article/{40位16进制}.png@1320w_1980h.webp

可以观察到,图片的文件名分为两部分:"{40位16进制}.png"和"@1320w_1980h.webp"

于是大胆猜测:前面的PNG就是上传的原图存放的地址。@后面包含宽高信息的文件名,则代表实际向服务器请求的压缩图片的宽高和格式,而这个宽高和格式则是根据当前浏览器内核的类型生成的。请求发出后,B站的图片CDN根据请求的宽高和格式,返回对应的压缩图片。


于是我们得到了获取原图的方法:直接把@后面的文件名删除再请求!

按照这个方法,确实得到了清晰的图片,分辨率与上传时一致。

清晰的表格图片

把图片另存为,再和上传时的原图比对SHA256校验值,发现完全一致。说明获取的图片和上传的原图在文件级别相同

比对校验值

那么对于上传并选择打水印的PNG截图,能获取到与原图分辨率一致且无压缩的图片吗?答案是肯定的。

打过水印的截图仍能保持原分辨率(注意水印是原图上的)

另外根据实测,对于这张图片,Chromium内核的浏览器返回的是WEBP格式的图片,大小200KB左右;而iOS设备上的Safari、老版Edge、IE浏览器返回的都是PNG格式的图片,而且压缩了分辨率之后的图片竟然比源文件还大,达到了惊人的4MB。

不同浏览器内核返回的压缩图片信息

我们还可以请求一个其他分辨率的压缩图片。把宽高信息改为800x800,可以看到返回了一个533*800分辨率的图片,大小仅65.7KB。没有返回一个压扁了的正方形图片,说明服务器压缩时是强制保持原比例的。

修改请求后返回的小图片
小图片的分辨率信息

实际上大多数网站对于头像等需要多种尺寸的图片,都是这么处理的。


图表保存下来不清晰怎么办?教你获取专栏图片原图的评论 (共 条)

分享到微博请遵守国家法律