DEV Community · Show DEV8/16 22:0056 分
HEIC为何破坏浏览器图像工具及修复成本
Why HEIC breaks every browser-based image tool, and what it costs to fix
HEIC格式因HEVC编码专利问题,导致Chrome、Firefox和Edge无法解码,而Safari因苹果授权可正常显示,这造成开发者在Mac和Safari上测试时无法发现bug。浏览器图像工具在处理HEIC文件时,img.decode()会报错,canvas绘制空白,且文件重命名无效,因为解码器检查的是文件头而非扩展名。正确检测HEIC需读取ftyp box的品牌字段,如heic、heix等。此外,iOS设备上传的文件常出现file.type为空字符串,导致基于MIME类型的验证错误拒绝有效图片。修复需处理空类型并采用文件头检测,增加了开发成本。