Добро пожаловать, гость ( Вход | Регистрация )
| -=CHE@TER=- |
Oct 13 2007, 09:50
Сообщение
#1
|
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,401 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 323 раз(а) |
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=- |
Nov 15 2008, 09:47
Сообщение
#2
|
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,401 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 323 раз(а) |
Нашёл, наверное хрестоматийный, пример безнадёжно изгаженной картинки:
CODE http://www.bruteprop.com/v3/gallery/images/wesk811.jpg Занимает 819,693 байта из которых остаётся только 228,764, а остальные 590,929 байт - не поверите - мусор!!! Причём редкостный мусор, который точно никому не нужен - если интересно скачайте картинку и посмотрите на её содержимое где-нибудь в FAR'е по F3 - и этот хлам качается без спроса и согласия. Но такие картинки скорее исключение из правил, нежели правило, однако наглядно показывают как нужно правильно тратить чужой трафик, делать невыносимо тяжеловесные сайты и пользоваться настолько же убогим софтом создающим такие файлы. Это не учитывая то, что для такого скудного количества цветов самым подходящим форматом по критериям размер/качество был бы .PNG! Справедливости ради нужно отметить, что после снятия всякого в файле вылетают цвета - ICC-Profile?.. Надо, всё-таки, прикрутить его поддержку в JPGStrip. Постараюсь глянуть что в этой картинке не так. |
| Grom PE |
Nov 18 2008, 16:35
Сообщение
#3
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 84 Регистрация: 7-February 08 Из: i@grompe.org.ru Пользователь №: 3,120 Спасибо сказали: 95 раз(а) |
ICC-Profile?.. А что там прикручивать? Раскомментировать $EE в JPEGAllowBlocks и всё. Надо, всё-таки, прикрутить его поддержку в JPGStrip. Постараюсь глянуть что в этой картинке не так. Кстати, это не ICC-профиль, а указание на то, что картинка в CMYK. И занимает всего 16 байт. |
| -=CHE@TER=- |
Nov 18 2008, 16:44
Сообщение
#4
|
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,401 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 323 раз(а) |
А что там прикручивать? Раскомментировать $EE в JPEGAllowBlocks и всё. Проблема в том, что у некоторых не CMYK картинок этот блок тоже торчит, хотя если его убрать ничего не изменится. Надо как-то детектить, когда его можно резать, а когда нет.Кстати, это не ICC-профиль, а указание на то, что картинка в CMYK. И занимает всего 16 байт. |
-=CHE@TER=- JPGStrip Oct 13 2007, 09:50
Grom PE Сравнение ujpg и JPGStrip:
Я взял 3563 картинки J... Oct 14 2007, 00:04
-=CHE@TER=- О! Спасибо за тест!
(3) обе программы опт... Oct 14 2007, 09:35
Grom PE Мои эксперименты показали, что замена двух байтов ... Oct 16 2007, 08:02
-=CHE@TER=- Хотя, может, это и правильно — пытаться дост... Oct 17 2007, 05:09
Alex -=CHE@TER=- а графический вариант уже есть? :)
Про... Oct 20 2007, 12:55
-=CHE@TER=- -=CHE@TER=- а графический вариант уже есть? :)В см... Oct 23 2007, 09:08
Alex Ну всмысле что бы не надо было прописывать всякую.... Oct 23 2007, 14:03
-=CHE@TER=- Ну всмысле что бы не надо было прописывать всякую.... Oct 23 2007, 17:28
Alex А что там уметь?!))) Просто не очень люблю кон... Oct 23 2007, 20:38
-=CHE@TER=- Так, программу выложил (см. первый пост) и изменил... Oct 24 2007, 11:17
jTommy Потестировал немного. Все что нашел у себя на хард... Dec 1 2007, 14:21
-=CHE@TER=- jTommy!
Большое спасибо за тестирование и заме... Dec 1 2007, 16:00
Grom PE
Ещё заменил копирайт [b]Grom PE / -=CHE@TER=- на ... Dec 1 2007, 16:36
jTommy Оказывается битых файлов было не 4 а около 15 (я и... Dec 1 2007, 16:44
-=CHE@TER=- Все правильно, я же теперь в команде.
P.S. Кажетс... Dec 2 2007, 05:42
jTommy 1) Косяк с .BAK файлами - если переименовывать, то... Dec 2 2007, 08:07
-=CHE@TER=- Пофиксил работу с повторной обработкой - сначала д... Jan 21 2008, 07:57
Grom PE -=CHE@TER=-
Как сохраняет в CMYK JPEG Corel Photo-... Jan 21 2008, 09:55
-=CHE@TER=- Обновил первый пост - JPGStrip 0.25:
Блин, чертов... Mar 27 2008, 13:36
Grom PE - show error if no files given
Не совсем понял про... Mar 27 2008, 14:27
Grom PE Проблема в том, что у некоторых не CMYK картинок э... Nov 18 2008, 17:53
-=CHE@TER=- Хотелось бы пример такой картинки.Да запросто - бе... Nov 19 2008, 12:33
-=CHE@TER=- JPGStrip 0.26
Прикручена поддержка CMYK и арифмети... Dec 4 2008, 19:42
-=CHE@TER=- На сайте в новостях есть, но тут более подробно на... Feb 27 2011, 10:40![]() ![]() |
| Упрощённая версия | Сейчас: 2nd December 2025 - 00:42 |