हाय मुझे यकीन है कि इसी तरह के बहुत सारे सवाल पूछे गए थे, लेकिन बहुत खोज करने के बाद भी मुझे अपनी स्थिति का वर्णन करने वाला कोई भी पद नहीं मिला।
मेरे पास कुछ jpg फाइलें हैं जिनमें एक निश्चित बिंदु के बाद कुछ रंग गलत हैं और प्रत्येक पिक्सेल को बाईं ओर स्थानांतरित कर दिया गया है। मुझे लगता है कि इस बिंदु पर कुछ गायब बाइट्स के कारण यह बदल जाता है। मैंने फ़ाइल को vi के साथ संपादित करने की कोशिश की, लेकिन यह पता लगाना असंभव है कि लापता बाइट्स कहाँ हैं, vi भी उपयोग करने के लिए बहुत जटिल है। मैंने नैनो की भी कोशिश की लेकिन यह बाइनरी-सेफ नहीं है।
यह प्रश्न की छवियों में से एक है:
इसलिए मैं आपसे दो सवाल पूछना चाहता हूं:
- मैं लिनक्स में ऐसी छवियों की मरम्मत कैसे कर सकता हूं?
- मैं लिनक्स के तहत बाइनरी टेक्स्ट एडिटर में फ़ाइल को सुरक्षित रूप से कैसे खोल और संपादित कर सकता हूं?
संपादित करें: हेक्सिडिट का उपयोग करते हुए मैंने पाया कि स्थिति 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.....
रैंडम नंबरों के साथ इन बाइट्स को बदलने से मैं छवि को अनफिट कर पा रहा था, लेकिन अभी भी रंग की समस्या है।
किसी ने मुझे jpeg एन्कोडिंग के बारे में कुछ प्रलेखन के लिए इंगित कर सकता है ताकि मैं यह पता लगा सकूं कि 8x8 ब्लॉक कहां समाप्त होता है।
मैं सोच रहा था कि स्थिति इतनी सटीक क्यों है (0x27F000 से 0x27FFFF), क्या यह मेरे कैम या मेमोरी कार्ड का एक बग हो सकता है?