最近做项目的时候发现某些版本的 Safari ( macOS & iOS 均存在)会对 canvas 的 getImageData 和 toDataURL 添加随机噪声,那这是不是意味着如果我在设计工具(例如 Figma )里上传了一张透明图片,再导出,那导出的结果里的像素值已经发生了很大的变化?虽然肉眼看上去没有差别,但是实际已经被 rape 一遍了?
目前发现 Macos 14.4 和 iOS17 上的 Safari 会有加噪声的操作,自用的 iPhone15 pro 倒是没有发现,但想想还是觉得可怕,以后估计不会再用 Safari 做一些图片处理的操作了。
1
maggch97 17 天前
设计工具不会用 getImageData 这种 api
|
![]() |
2
shadowyue 17 天前
别的浏览器不会吗?这个应该是为了防止浏览器指纹识别来识别特定用户的,按理说每个浏览器都会这么干才对?
|
![]() |
3
liuidetmks 17 天前
这个是和设备相关的吧,有些浏览器指纹就是通过 canvas 生成
|
4
wheelg OP @shadowyue chrome 目前没有这么干,其他的没试过不太清楚
@liuidetmks 虽说保护隐私,但还是停膈应的,有些网站纯前端实现的图片裁剪等功能都会被加上噪声,总觉得不舒服 @maggch97 除了 figma 这种大规模使用 wasm 的我觉得可能不会用 getImageData 这种来导出,其他工具类网页不可能从头实现一套导出逻辑吧,这个肯定是有影响的 |
![]() |
5
jqtmviyu 17 天前
你这不就是在问, 基于 IE 的在线设计工具都不可靠么?
新时代 ie, 浏览器版本跟着系统走 |