Xin chào Tôi chắc chắn có rất nhiều câu hỏi tương tự được hỏi, nhưng sau khi tìm kiếm rất nhiều, tôi không tìm thấy bài đăng nào mô tả tình huống của mình.
Tôi có một số tệp jpg có một số màu sai sau một điểm nhất định và mọi pixel đều bị dịch chuyển sang trái. Tôi nghĩ rằng điều này là do một số byte bị thiếu tại điểm mà nó thay đổi. Tôi đã cố gắng chỉnh sửa tệp bằng vi nhưng dường như không thể tìm ra các byte bị thiếu ở đâu, vi cũng rất phức tạp để sử dụng. Tôi cũng đã thử nano nhưng nó không an toàn nhị phân.
Đây là một trong những hình ảnh trong câu hỏi:
Vì vậy, tôi muốn hỏi bạn hai câu hỏi:
- Làm thế nào tôi có thể sửa chữa những hình ảnh như vậy trong Linux?
- Làm cách nào tôi có thể mở và chỉnh sửa tệp một cách an toàn trong trình soạn thảo văn bản nhị phân trong Linux?
Chỉnh sửa: sử dụng hexedit Tôi phát hiện ra rằng từ vị trí 0x27F000 đến 0x27F403 chỉ có những cái 0xff và từ 0x27F404 đến 0x27FFFF chỉ có các số 0x00. Điều này làm cho một cái gì đó như thế này:
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.....
Thay đổi các byte này bằng các số ngẫu nhiên tôi có thể làm mờ hình ảnh, nhưng vẫn còn vấn đề về màu sắc.
Ai đó có thể chỉ cho tôi một số tài liệu về mã hóa jpeg để tôi có thể tìm ra làm thế nào để biết một khối 8 x 8 kết thúc ở đâu.
Tôi đang tự hỏi tại sao các vị trí rất chính xác (0x27F000 đến 0x27FFFF), đây có thể là lỗi của máy ảnh của tôi hoặc thẻ nhớ tôi đã sử dụng không?