Есть особая библиотека иконок, которая мне действительно нравится в DeviantArt.

Теперь я скачал пакет, в котором находятся файлы png (я знаю, что файлы ico есть, но я хочу файлы png ).

Тем не менее, о моем компьютере Windows 7 говорит мне, что около 1/3 файлов png повреждены. Я обычно использую XnView для просмотра файлов, и он не отображает "поврежденные" файлы. Я пробовал других редакторов и зрителей, и я получил ту же проблему.

Теперь пакет png изначально был разработан для Linux как пакет ОС-значков для всей системы, поэтому я считаю, что файлы png были созданы в Linux.

Итак, есть ли способ, как я могу "исправить" "поврежденные" файлы png для моего компьютера с Windows 7? Может быть, когда файлы были созданы, было что-то не в том цвете или что-то в этом роде?

Есть какие-нибудь подсказки?

[редактировать]

Я читал в этой теме, что "порча" может произойти во время процесса извлечения. Я сделал все извлечение с 7-почтовым индексом. Это был zip содержащий tar . Я попробую другой экстрактор, но я не думаю, что это будет иметь значение.

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

[Обновить]

Хорошо, я исправил ссылку на пакет значков ... (другой был в порядке) - но эта новая ссылка на самом деле для оригинального пакета от DeviantArt.

Я делаю это следующим образом: я извлекаю содержимое папки .zip а затем извлекаю содержимое папки .tar пока ничего не сжимается.

Например, если вы загружаете этот набор, в папке add.png есть файл 32x32\actions . Другой - 32x32\actions\bottom.png . Во всех папках их много. Хорошим примером может служить 32x32\actions\appointment.png который отлично читается.

2 ответа2

3

Похоже, проблема в том, что архив tar содержит символические ссылки. Это означает, что дубликаты файлов не записываются дважды, а вместо этого связаны с существующим файлом. Это можно сделать, например, с помощью команды ln -s в Linux, и если вы затем создадите архив tar в Linux, символическая ссылка будет сохранена в архиве tar.

Тем не менее, 7-zip barfs на символических ссылках в архиве tar , и вместо того, чтобы обрабатывать его аккуратно, например, делать идентичную копию связанного файла, он записывает имя связанного файла в качестве содержимого файла. В этом случае файл gnome-panel-launcher.png содержит фактическое изображение.

7zip tar ошибка символьной ссылки

У вас нет особого выбора, кроме как сообщить, что это ошибка (но в их трекере ошибок уже есть куча существующих случаев и нет признаков какого-либо прогресса) или найти архиватор, который может лучше справиться с ситуацией. Я попробовал WinRAR, который я обычно использую, и он мог извлечь архив без проблем.

1

Я попытался извлечь архив Tar в 7-Zip. Там действительно нет проблем с процессом извлечения. Проблема в том, что архивы Tar могут иметь символические ссылки в системе Linux, и эти ссылки извлекаются как файлы в Windows 7-Zip.

Поскольку вам нужны только реальные изображения, вы можете безопасно удалить эти файлы символьных ссылок, которые отображаются как недействительные файлы PNG, и просто использовать оставшиеся фактические изображения. Я заметил, что файлы символьных ссылок имеют размер от 8 до 32 байт, тогда как реальные изображения должны быть намного больше, по крайней мере, более 320 байт.

Но если вы хотите знать, на какой фактический файл ссылается каждая символическая ссылка, вы можете открыть файл ссылки в Блокноте или текстовом редакторе (да, хотя это так.PNG файл), и вы найдете имя файла самого файла. Например, файл символьной ссылки add.png при открытии в блокноте показывает, что фактическим файлом является list-add.png. Вы можете обнаружить, что этот файл существует в папке и содержит значок добавления .

Вы можете переименовать файлы символьных ссылок из.PNG в.TXT для удобного поиска. Но я просто удалил бы их, так как меня интересовали бы только реальные изображения, и нет необходимости иметь копии одного и того же изображения (даже если Windows предоставляет собственную систему символьных или жестких ссылок).

Примечание. Во время процесса извлечения вас могут спросить, следует ли перезаписать определенные файлы. Ответьте « Да», если вы знаете, что существующий файл имеет размер около 12 байт, а новый - что-то вроде 500–1000 байт или более. Существующий файл является символьным файлом ссылок, тогда как новый файл перезаписывает его как фактическое изображение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .