嗨,我确定有很多类似的问题被问到,但是经过大量搜索后,我没有找到任何描述我情况的帖子。
我有一些 jpg 文件,在某个点之后有一些颜色错误,并且每个像素都向左移动。我认为这是因为在更改时丢失了一些字节。我试图用 vi 编辑文件,但似乎无法找出丢失的字节在哪里,而且 vi 使用起来非常复杂。我也试过 nano 但它不是二进制安全的。
这是有问题的图像之一:

所以我想问你两个问题:
编辑: 使用 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),这可能是我的凸轮或我使用的存储卡的错误吗?
不幸的是我不知道有任何 Linux 工具。这适用于 Windows:youtu.be/A33zn_sgm30
要做到正确可能有点挑剔,但可行。披露:我是这个软件的作者,我最初编写该软件是为了自己使用,可以在www.disktuna.com上找到该软件。
也有一个免费的替代方案,但它无法处理www.anderspedersen.net上过于严重的腐败。
| 归档时间: |
|
| 查看次数: |
20043 次 |
| 最近记录: |