Поиск недокачанных изображений
Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view
Поиск недокачанных изображений
Как и чем можно произвести поиск "битых" картинок (jpg, gif), по каким критериям можно оценить, что у файла нет конца ?
Если для html достаточным условием будет поиск по /html c опцией "файл НЕ включает".
То для JPG, несмотря на то что у него вроде есть постоянные завершающие символы FF D9 (hex), но в бинарной структире они могут встречаться не только в конце.
Или, если невозможно проделать это стандартным поиском тотала, может есть какие-то утилиты?
Если для html достаточным условием будет поиск по /html c опцией "файл НЕ включает".
То для JPG, несмотря на то что у него вроде есть постоянные завершающие символы FF D9 (hex), но в бинарной структире они могут встречаться не только в конце.
Или, если невозможно проделать это стандартным поиском тотала, может есть какие-то утилиты?
- Моторокер
- Сообщения: 1517
- Зарегистрирован: Пт май 06, 2005 08:22
- Откуда: г. Пермь (читается Перьмь)
- Контактная информация:
1. При поиске \xFF\xD9$ с включёнными регулярными выражениями вероятность найти битый файл будет больше.
2. Написать контентный плагин для поиска битых файлов.
Будет работать быстрее встроенного поиска, потому как читать будет только конец файла.
2. Написать контентный плагин для поиска битых файлов.
Будет работать быстрее встроенного поиска, потому как читать будет только конец файла.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
ПармаСруб - строительство домов и бань в Перми
-
DrShark
- Сообщения: 911
- Зарегистрирован: Сб окт 21, 2006 20:27
- Откуда: Kyiv, Ukraine
- Контактная информация:
Всторенными средствами, вроде бы, нет.И еще вопрос по поиску.
Можно ли найти те каталоги в которых НЕ находится определенный файл?
Я написал пожелание для плагина DirSizeCalc. Посмотрим, что скажет автор.
Также, думаю, эту задачу можно реализовать с помощью Script content plugin.
EDIT:
Это, вроде, как раз то, что нужно:
http://forum.wincmd.ru/viewtopic.php?t=9139
AntiDupl опять же не находит все битые изображения, простая проверка, захожу в каталог вижу 2000 изображений, открываю одно любое XnView-ом, перехожу в режим просмотра экскизов, Вид - открытками, XnView начинает к(х)ешировать изображения, и создает открытки (экскизы) только для тех, которые он читает, а нечитаемые просто непоказывает.
В этом же каталоге, создаю папку с произвольным именем, кидаю туда, все отк(х)ешированные XnView-ом файлы, переключаюсь на тотал, и вижу всё, что не смог XnView прочитать, тоесть это наши недокачанные файлы, и тут приходит понимание что AntiDupl не панацея.
В этом же каталоге, создаю папку с произвольным именем, кидаю туда, все отк(х)ешированные XnView-ом файлы, переключаюсь на тотал, и вижу всё, что не смог XnView прочитать, тоесть это наши недокачанные файлы, и тут приходит понимание что AntiDupl не панацея.
::::::::::::::::::::::::: jpgtest.cmd :::::::::::::::::::::::::
@echo off &chcp 1251 >nul
setlocal enableextensions
rem Тест с логом JPEG-файлов с ошибками. Используется jpegtran.exe
rem Параметры: /S - тест файлов в подкаталогах
rem Автор: Tol!k
rem Файл jpgerror.txt содержит строки
rem Not a JPEG file:
rem Corrupt JPEG data:
rem Premature end of
rem Empty input file
rem Invalid JPEG file structure:
rem JPEG datastream contains no image
set "jpg=*.jpg *.jpeg *.jpe"
if /i "%1"=="/s" (set "subdir=/s") else set "subdir="
if exist %tmp%\jpgtest.tmp exit /b
dir %jpg% /b %subdir% >%tmp%\jpgtest.tmp
set "err=%~dp0\jpgerror.txt"
if not exist "%err%" (
echo Not a JPEG file:>"%err%"
echo Corrupt JPEG data:>>"%err%"
echo Premature end of>>"%err%"
echo Empty input file>>"%err%"
echo Invalid JPEG file structure:>>"%err%"
echo JPEG datastream contains no image>>"%err%"
)
for /f "delims=" %%f in (%tmp%\jpgtest.tmp) do (
title %%f
jpegtran.exe -optimize "%%f" %tmp%\testtmp.jpg 2>&1|findstr /g:"%err%" &&(
echo %%f &echo.
echo %%f>>jpgerror.lst
)
)
title Done.
del /q %tmp%\testtmp.jpg
if exist jpgerror.lst (
echo JPEG-файлы с ошибками:
type jpgerror.lst |more
) else echo OK.
del /q %tmp%\jpgtest.tmp
pause &exit /b
::::::::::::::::::::::::: jpgtest.cmd :::::::::::::::::::::::::
Была у меня история такая же (востановление инфы после того как туда уже записали). Решил с помощью контекстного плагина по зачитки разрешения и еще чего то. Вопщем битые картинки не показывали инфу и вуаля сортирнул по этой колонки и перенес кривые. После запустил просмотр экскизов и все эти картинки были пустые (чернота). Вот так за 5 минут сортирнул нескольк тысяч картинок причем в разных директориях их было штук 300 (контр+Б).
Skif_off
На вскидку: убрать путь запуска, положить батник рядом с jpegtran.exe, прописать параметром /S.
На вскидку: убрать путь запуска, положить батник рядом с jpegtran.exe, прописать параметром /S.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher, а путь к файлам как передать? 
Tol!k
С %tmp% вроде нет проблем, перед запуском проверял, при необходимости удалял %tmp%\jpgtest.tmp вручную.
Как правильно передать параметры в кнопке? В поле параметров %P%N для одного файла и /S "%P" для рекурсивной обработки пачки, так?
Не срабатывает. Тестовый файл или один из пачки калечил в Hex-редакторе. Точно помню, что работало
, даже в теме восстановления инфы на руборде писал, чего не стал бы делать без проверки.
Пара мыслей:
1. Дело в версии jpegtran.exe, который я успел обновить до актуальной везде, где используется. Нагуглил и накачал из разных мест архивы с 2011 по 2014 гг., но пока не проверил. Хотя jpegtran.exe /? штатно срабатывает.
2. Есть вероятность, что дело в WinPE, несколько раз замечал, что батники, пользующие %temp%/%tmp% косячат иногда, как будто не всегда "понимают" где, собственно, находятся переменные или криво раскрываются (%~dp0 в т.ч.), хотя все файлы создавались где должны.
Tol!k
С %tmp% вроде нет проблем, перед запуском проверял, при необходимости удалял %tmp%\jpgtest.tmp вручную.
Как правильно передать параметры в кнопке? В поле параметров %P%N для одного файла и /S "%P" для рекурсивной обработки пачки, так?
Не срабатывает. Тестовый файл или один из пачки калечил в Hex-редакторе. Точно помню, что работало
Пара мыслей:
1. Дело в версии jpegtran.exe, который я успел обновить до актуальной везде, где используется. Нагуглил и накачал из разных мест архивы с 2011 по 2014 гг., но пока не проверил. Хотя jpegtran.exe /? штатно срабатывает.
2. Есть вероятность, что дело в WinPE, несколько раз замечал, что батники, пользующие %temp%/%tmp% косячат иногда, как будто не всегда "понимают" где, собственно, находятся переменные или криво раскрываются (%~dp0 в т.ч.), хотя все файлы создавались где должны.