修复损坏的 jpg 文件

Fal*_*alk 13 linux jpeg

嗨,我确定有很多类似的问题被问到,但是经过大量搜索后,我没有找到任何描述我情况的帖子。

我有一些 jpg 文件,在某个点之后有一些颜色错误,并且每个像素都向左移动。我认为这是因为在更改时丢失了一些字节。我试图用 vi 编辑文件,但似乎无法找出丢失的字节在哪里,而且 vi 使用起来非常复杂。我也试过 nano 但它不是二进制安全的。

这是有问题的图像之一:

在此处输入图片说明

所以我想问你两个问题:

  1. 如何在 Linux 中修复此类图像?
  2. 如何在 Linux 下的二进制文本编辑器中安全地打开和编辑文件?

编辑: 使用 hexedit 我发现从位置 0x27F000 到 0x27F403 只有 0xff,从 0x27F404 到 0x27FFFF 只有零 0x00。这使得这样的事情:

    0027EFF0   F8 83 C3 E2  09 35 AF 13  44 6E C5 FD  C7 EF 23 E8  .....5..Dn....#.
    0027F000   FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
    [...]
    0027F400   FF FF FF FF  00 00 00 00  00 00 00 00  00 00 00 00  ................
    [...]
    0027FFF0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00280000   8F 39 6E 47  4F 43 5F 36  7C 73 66 F1  0D AE AD AF  .9nGOC_6|sf.....
Run Code Online (Sandbox Code Playgroud)

用随机数更改这些字节我能够取消图像的移动,但仍然存在颜色问题。

有人可以指点我一些关于 jpeg 编码的文档,这样我就可以弄清楚如何知道 8x8 块在哪里结束。

我想知道为什么位置如此精确(0x27F000 到 0x27FFFF),这可能是我的凸轮或我使用的存储卡的错误吗?

Joe*_*een 1

不幸的是我不知道有任何 Linux 工具。这适用于 Windows:youtu.be/A33zn_sgm30

要做到正确可能有点挑剔,但可行。披露:我是这个软件的作者,我最初编写该软件是为了自己使用,可以在www.disktuna.com上找到该软件。

也有一个免费的替代方案,但它无法处理www.anderspedersen.net上过于严重的腐败。