jpg图片损坏怎么修复
上个月我朋友发来一张婚礼抓拍,片损屏幕上一半是坏修湛蓝天空,另一半是片损灰绿色噪点块。那张照片他存了三年,坏修手机换了两部,片损偏偏在导出时断了电。坏修他问我能不能修,片损我看了看文件头,坏修心里大概有数了。片损
jpg损坏分两种。坏修一种是片损文件头坏了,也就是坏修最前面那几十个字节丢失或错乱。另一种是片损数据块损坏,画面出现花屏、坏修条纹或整块色斑。片损前者好办,后者看运气。
文件头损坏的症状很典型——双击图片,系统提示“无法识别的图像格式”。其实图片数据还在,只是解码器找不到入口。这时候用十六进制编辑器(比如HxD)打开文件,看看开头是不是FF D8 FF。如果不是,找一张同设备拍出来的正常jpg,把它的文件头复制过来,覆盖到损坏文件的最前面。操作不难,但得注意分辨率信息也要一起复制,否则画面可能变形。
如果你不想碰十六进制编辑器,有个更笨但有效的办法。把损坏的jpg直接改成.png后缀,再用画图软件打开。系统会尝试用另一个解码器去读,有时候能绕过坏掉的文件头,把像素硬拽出来。成功率不高,但零成本,值得一试。
数据块损坏就麻烦点。症状是图片能打开,但中间某块区域糊成一团,或者整条颜色断层。这种情况多半是文件在写入过程中被中断,或者存储卡坏道导致的。市面上有专门的修复工具,比如JPEGsnoop、Stellar Repair for Photo,原理是扫描文件里残留的霍夫曼表,重新组织数据流。我试过几个,免费的基本只能修到“能看出人形”的程度,收费的能恢复七八成清晰度。
有个取巧的法子,很多老玩家在用。把损坏的jpg拖进浏览器(Chrome或Firefox),如果浏览器能正常显示,立刻截图保存。浏览器引擎的解码容错率比系统自带的高,有时候能跳过坏块直接渲染出完整画面。截图会损失一点画质,但总比没有强。
你要是着急,还有一招——微信。把图片发给任意联系人,不点原图,让系统自动压缩一遍。微信的图片处理管线会重新编码,坏掉的区块会被自动填成邻近像素的颜色。压缩后的图肯定不如原图清晰,但至少能用。我帮人修图时经常这么干,特别是那种只有一张的珍贵照片,保命要紧。
说到根上,jpg损坏的修复逻辑就一条:让别的软件重新解读那些残缺的数据。不同的解码器对错误数据的容忍度不一样,Windows自带的看图工具最严格,第三方软件宽松些,专业修复工具则强行猜测缺失部分。多试几个工具,总有一个能猜出个大概。
最后说句实在话,修图不如备份。我那个朋友后来发现,那张照片其实在云相册里有备份,只是他忘了。折腾一下午,最后从云端下载原图,五秒钟解决问题。但那次经历让他养成了每月导出一次照片到硬盘的习惯。这也许才是那张坏图真正教会他的事。
