![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() |
-=CHE@TER=- |
![]()
Сообщение
#1
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,371 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 318 раз(а) ![]() |
QUOTE Скачать программу: >>>JPGStrip<<< Кто уже читал мой обзор вот тут, наверняка заметил, что я не очень доволен ситуацией сложившейся с JPG стрипперами. Так что я написал свой, что называется, from scratch (с нуля). Вот оно: QUOTE АХТУНГ! Программа на стадии тестирования - так что, на всякий пожарный, делайте резервные копии ваших .JPG файлов! Вас предупредили. Последняя версия лежит на сайте в CTPAX-X Soft. История изменений Предложения по программе (этакий to-do): 1) Не записывать в выходной файл дублирующиеся секции? 2) Оставлять Exif информацию (прога удаляет весь мусор, кроме Exif). Объясню общий алгоритм работы программы. Значит так: JPG файл состоит из блоков, каждый из которых начинается на FF (255). Общая структура, такова: FFD8 FFxxSZ... FFxxSZ... FFDASZ... FFD9 ВСЕ блоки, кроме FFD8 (сигнатура JPEG) и FFD9 (маркер конца файла) имеют поле SZ - размер этой самой структуры (в Big Endian, так что его нужно разворачивать, что и делается). xx - это некий номер, определяющий, что за данные находятся в этом блоке. Алгоритм моей программы тупой как бревно - читаются эти блоки, из них читается байт xx и сравнивается с массивом разрешённых байтов (см. константу JPEGAllowBlocks) - если этого байта там нет - значит это какой-нибудь thumbnail или ещё какая-нибудь хрень, так что мы её пропускаем и не записываем в выходной файл. |
![]() ![]() |
-=CHE@TER=- |
![]()
Сообщение
#2
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,371 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 318 раз(а) ![]() |
Так, программу выложил (см. первый пост) и изменил ToDo (см. там же).
История изменений - в .DPR файле и первом посте этой темы. Помимо всего прочего немного поменял make.bat, чтобы DVCLAL и PAKAGEINFO стрипались. Просьба потестить, кто может. |
jTommy |
![]()
Сообщение
#3
|
Наблюдающий ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 197 Регистрация: 4-February 08 Из: деревня Москва Пользователь №: 6 Спасибо сказали: 19 раз(а) ![]() |
Потестировал немного. Все что нашел у себя на харде скинул в несколько каталогов. Там были фотки с цифровиков, высококачественные обои, также высококачественные и не очень снимки природы, животных и т.д. + всякие мелкие аватарки и смайлики.
Вот что получилось: CODE Файлов Размер Сохранено 14000 1гб 39мб 2220 212мб 403кб 13152 2гб 8.6мб 7119 2гб 20мб Обработка каталога с 14тыс файлов заняла всего несколько минут. Часто размер мусора в одном файле доходил до 40кб. Глюки: 1. В каталоге, где 7тыс. зависла на 4 файлах, вот они: 180.jpg 182.jpg 220.jpg 292.jpg 2. Файлы с русскими буквами в консоли показываются крякозябрами. Не знаю чей это глюк, у меня ХР английская, возможно из-за этого. Far Manager нормально показывает русский язык. Сообщение было отредактировано jTommy: Dec 1 2007, 14:31 |
-=CHE@TER=- |
![]()
Сообщение
#4
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,371 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 318 раз(а) ![]() |
jTommy!
Большое спасибо за тестирование и замечания/отчёт! Вот что получилось: Не очень, конечно, много съэкономило, но всё же... Какие-то у тебя файлы частично пострипанные. (*улыбается*)CODE Файлов Размер Сохранено 14000 1гб 39мб 2220 212мб 403кб 13152 2гб 8.6мб 7119 2гб 20мб Обработка каталога с 14тыс файлов заняла всего несколько минут. Часто размер мусора в одном файле доходил до 40кб. 40кб - не предел. (*улыбается*)Глюки:1. В каталоге, где 7тыс. зависла на 4 файлах, вот они: О! Большое спасибо!Там, почему-то, между секциями мусор был. Т.е., например, FF xx SZ (DATA) .. .. .. FF xx SZ (DATA) - т.е. после конца одной секции и началом другой шли, почему-то, какие-то левые байты. Заменил в коде: CODE Move(P[I], W, 2); Move(P[I+2], Sz, 2); На поиск FF: CODE Repeat Move(P[I], W, 2); Move(P[I+2], Sz, 2); If Lo(W)<>$FF Then I:=I+1; Until ((Lo(W) = $FF) Or (I>=JPGOldSize)); Всё заработало. 2. Файлы с русскими буквами в консоли показываются крякозябрами. Не знаю чей это глюк, у меня ХР английская, возможно из-за этого. Far Manager нормально показывает русский язык. А, ну дык: CharToOEM(). Исправил.Ещё заменил копирайт Grom PE / -=CHE@TER=- на CTPAX-X Team. Надеюсь, никто не против? (*улыбается*) Версия 0.22. Смотрим первый пост. |
Grom PE |
![]()
Сообщение
#5
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 84 Регистрация: 7-February 08 Из: i@grompe.org.ru Пользователь №: 3,120 Спасибо сказали: 95 раз(а) ![]() |
Ещё заменил копирайт Grom PE / -=CHE@TER=- на CTPAX-X Team. Надеюсь, никто не против? (*улыбается*) P.S. Кажется, список нужно обновить =) |
![]() ![]() |
Упрощённая версия | Сейчас: 30th April 2025 - 23:28 |