hexscope
Відкрити файл

Пошкоджені файли

Чому не відкривається PNG?

Якщо переглядач відмовляється відкрити PNG, він рідко пояснює причину. Зазвичай є одна з п’яти причин, і кожна залишає слід у байтах файла. hexscope прочитає навіть пошкоджений файл у браузері й покаже точне місце помилки.

Перевірити PNG Перевірити пошкоджене зображення

1 Насправді це не PNG

Файл із назвою .png може бути перейменованим JPEG, WebP або фото HEIC з iPhone чи файлом, який сайт зберіг із неправильною назвою. Програми, що довіряють розширенню, не зможуть його відкрити. Кожен PNG починається з однакової послідовності з восьми байтів — 89 50 4E 47 0D 0A 1A 0A; якщо її немає, hexscope визначить справжній формат і, коли зможе, відкриє файл як нього.

Як виправити: укажіть правильне розширення або відкрийте файл програмою, яка визначає формат за вмістом.

2 Файл обірвався

Завантаження перервалося, на диску не вистачило місця або картку вийняли зарано — файл просто закінчується. PNG складається з послідовності блоків, кожен із яких має власну довжину. Наприкінці обов’язково має бути блок IEND. hexscope покаже останній цілий блок, обірваний блок і відсутність IEND.

Як виправити: завантажте файл ще раз. Відновити відсутні дані неможливо.

3 Файл передали як текст

Деякі старі програми передавання — наприклад, FTP в ASCII-режимі — сприймають кожен файл як текст і змінюють символи кінця рядка. Підпис PNG містить байти 0D 0A і 0A саме для виявлення такої зміни. Якщо вони змінилися, файл передавали як текст, тож змінилося й усе, що йшло після них. hexscope повідомить про пошкоджений підпис PNG і продовжить читання, щоб показати подальші пошкодження.

Як виправити: передайте файл ще раз у двійковому режимі.

4 Байти змінилися

Кожен блок завершується контрольною сумою CRC-32, обчисленою за типом і даними блока. Достатньо змінити один біт через несправний диск, помилкове редагування чи недбалу програму — і суми не збігатимуться. hexscope позначає кожну розбіжність і показує записане та обчислене значення в чотирьох байтах контрольної суми. Так видно, який блок пошкоджено. Деякі переглядачі відмовляються відкривати файл через помилкову суму важливого блока, навіть якщо решта файла справна.

Як виправити: за можливості отримайте справну копію. Якщо пошкодилася лише контрольна сума, файл може врятувати програма, яка обчислить її заново.

5 Стиснені пікселі пошкоджені

Зображення зберігається в блоках IDAT, стиснених алгоритмом DEFLATE — тим самим, що й у ZIP. Якщо ці байти пошкоджені, розпакування переривається, а переглядач не показує нічого або відображає лише верхню частину зображення, а нижче — сіре поле. hexscope розпаковує потік крок за кроком, указує місце помилки й показує все, що вдалося прочитати до неї.

Як виправити: як і в разі обірваного файла, втрачені дані поверне лише справна копія.

Що hexscope може виправити

Програма покаже, що саме й де не так. Якщо пошкодження можна виправити, команда «Спробувати відновити» збереже копію, впорядкувавши вцілілі дані: перерахує контрольні суми, додасть завершення до обірваного файла, щоб переглядач показав отримане, або пропустить блок із неправильною довжиною. Програма нічого не вгадує: відсутні пікселі так і залишаться відсутніми — їх поверне лише справна копія. Файл залишається у браузері й нікуди не передається.

Перевірити PNG зараз

Формат описано в специфікація PNG; підпис відрізняє PNG від інших файлів і допомагає виявити деякі помилки передавання.