View previous topic :: View next topic |
Author |
Message |
plvtor
Joined: 11 Nov 2007 Posts: 11
|
(Separately) Posted: Wed May 14, 2008 03:51 Post subject: Поиск недокачанных изображений |
|
|
Как и чем можно произвести поиск "битых" картинок (jpg, gif), по каким критериям можно оценить, что у файла нет конца ?
Если для html достаточным условием будет поиск по /html c опцией "файл НЕ включает".
То для JPG, несмотря на то что у него вроде есть постоянные завершающие символы FF D9 (hex), но в бинарной структире они могут встречаться не только в конце.
Или, если невозможно проделать это стандартным поиском тотала, может есть какие-то утилиты? |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Wed May 14, 2008 15:53 Post subject: |
|
|
1. При поиске \xFF\xD9$ с включёнными регулярными выражениями вероятность найти битый файл будет больше.
2. Написать контентный плагин для поиска битых файлов.
Будет работать быстрее встроенного поиска, потому как читать будет только конец файла. _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
plvtor
Joined: 11 Nov 2007 Posts: 11
|
(Separately) Posted: Sat May 17, 2008 02:09 Post subject: |
|
|
Поиск по отсутствию FFD9 не полностью все находит, но нашел утилитку для поиска дупликатов картинок, которая еще и проверяет на целосность файлы.
AntiDupl
И еще вопрос по поиску.
Можно ли найти те каталоги в которых НЕ находится определенный файл? |
|
Back to top |
|
|
DrShark
Joined: 21 Oct 2006 Posts: 911 Location: Kyiv, Ukraine
|
(Separately) Posted: Sat May 17, 2008 13:32 Post subject: |
|
|
Quote: | И еще вопрос по поиску.
Можно ли найти те каталоги в которых НЕ находится определенный файл? |
Всторенными средствами, вроде бы, нет.
Я написал пожелание для плагина DirSizeCalc. Посмотрим, что скажет автор.
Также, думаю, эту задачу можно реализовать с помощью Script content plugin.
EDIT:
Это, вроде, как раз то, что нужно:
http://forum.wincmd.ru/viewtopic.php?t=9139 |
|
Back to top |
|
|
Alextp
Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Sat May 17, 2008 17:25 Post subject: |
|
|
Quote: | Написать контентный плагин для поиска |
конт. плагин
уже есть: только поля "это бттое изображение" нет.
А утилитка была бы удобнее |
|
Back to top |
|
|
swr
Joined: 07 Jun 2007 Posts: 59
|
(Separately) Posted: Wed Sep 30, 2009 13:02 Post subject: |
|
|
AntiDupl опять же не находит все битые изображения, простая проверка, захожу в каталог вижу 2000 изображений, открываю одно любое XnView-ом, перехожу в режим просмотра экскизов, Вид - открытками, XnView начинает к(х)ешировать изображения, и создает открытки (экскизы) только для тех, которые он читает, а нечитаемые просто непоказывает.
В этом же каталоге, создаю папку с произвольным именем, кидаю туда, все отк(х)ешированные XnView-ом файлы, переключаюсь на тотал, и вижу всё, что не смог XnView прочитать, тоесть это наши недокачанные файлы, и тут приходит понимание что AntiDupl не панацея. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun Nov 29, 2009 20:23 Post subject: |
|
|
::::::::::::::::::::::::: 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 :::::::::::::::::::::::::
|
|
Back to top |
|
|
aLLigator
Joined: 01 Dec 2011 Posts: 166 Location: из тех ворот, что и весь народ...
|
(Separately) Posted: Mon Dec 09, 2013 15:09 Post subject: |
|
|
С поиском по начальному FFD8 и конечному FFD9 тегу JPEG справился с помощью плагина decHEXwdx.
А вот как быть если файл оказался забит нулями в середине файла? |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Tue Dec 10, 2013 15:16 Post subject: |
|
|
aLLigator
А чем вас не устраивает батник чуть выше? |
|
Back to top |
|
|
Mailk
Joined: 16 Jan 2010 Posts: 251
|
(Separately) Posted: Wed Feb 05, 2014 00:29 Post subject: |
|
|
Была у меня история такая же (востановление инфы после того как туда уже записали). Решил с помощью контекстного плагина по зачитки разрешения и еще чего то. Вопщем битые картинки не показывали инфу и вуаля сортирнул по этой колонки и перенес кривые. После запустил просмотр экскизов и все эти картинки были пустые (чернота). Вот так за 5 минут сортирнул нескольк тысяч картинок причем в разных директориях их было штук 300 (контр+Б). |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Wed Feb 05, 2014 16:50 Post subject: |
|
|
Mailk wrote: | После запустил просмотр экскизов и все эти картинки были пустые (чернота). |
Сомнительный критерий, бывают случаи, когда миниатюра цела, а все остальное - битое.
Батник от Tol!k самое оно. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Tue Sep 16, 2014 02:53 Post subject: |
|
|
У меня по-ходу с лыжами что-то, подскажите, пожалуйста, кнопку для скрипта от Tol!k. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Sep 16, 2014 09:23 Post subject: |
|
|
Skif_off
На вскидку: убрать путь запуска, положить батник рядом с jpegtran.exe, прописать параметром /S. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Sep 16, 2014 17:38 Post subject: |
|
|
в пути к %tmp% нет пробелов?
не остался ли неудалённый %tmp%\jpgtest.tmp ?
Quote: | положить батник рядом с jpegtran.exe | надёжнее – в папку, прописанную в %path% |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Tue Sep 16, 2014 19:42 Post subject: |
|
|
Flasher, а путь к файлам как передать?
Tol!k
С %tmp% вроде нет проблем, перед запуском проверял, при необходимости удалял %tmp%\jpgtest.tmp вручную.
Как правильно передать параметры в кнопке? В поле параметров %P%N для одного файла и /S "%P" для рекурсивной обработки пачки, так?
Не срабатывает. Тестовый файл или один из пачки калечил в Hex-редакторе. Точно помню, что работало , даже в теме восстановления инфы на руборде писал, чего не стал бы делать без проверки.
Пара мыслей:
1. Дело в версии jpegtran.exe, который я успел обновить до актуальной везде, где используется. Нагуглил и накачал из разных мест архивы с 2011 по 2014 гг., но пока не проверил. Хотя jpegtran.exe /? штатно срабатывает.
2. Есть вероятность, что дело в WinPE, несколько раз замечал, что батники, пользующие %temp%/%tmp% косячат иногда, как будто не всегда "понимают" где, собственно, находятся переменные или криво раскрываются (%~dp0 в т.ч.), хотя все файлы создавались где должны. |
|
Back to top |
|
|
|