IPB

Добро пожаловать, гость ( Вход | Регистрация )

2 Страниц V < 1 2  
Reply to this topicStart new topic
> Strippers, или уменьшаем размер файлов
Grom PE
Apr 30 2016, 16:21
Сообщение #21


Advanced Member
***

Группа: CTPAX-X
Сообщений: 84
Регистрация: 7-February 08
Из: i@grompe.org.ru
Пользователь №: 3,120
Спасибо сказали: 95 раз(а)



-=CHE@TER=-, если ты хочешь ещё большего уровня сжатия, чем kzip, лучше не перебирать случайные таблицы в нём, а воспользоваться алгоритмом zopfli, который сейчас лучше всех жмёт DEFLATE. Для zip утилита с этим алгоритмом называется AdvanceComp/advzip.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
May 1 2016, 19:51
Сообщение #22


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,313
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 306 раз(а)



Во! Спасибо! Годные штуки - действительно, лучше Ken'овских утилит жмут.
advzip.exe -a -4 -i 20 test-1.zip test.exe
advzip.exe -a -4 -i 20 test-2.zip test.exe
Пот этом "test-1.zip" и "test-2.zip" будут идентичны. Ещё бы не забыть при скольких итерациях архив создавался. (*улыбается*)
Единственная проблема, которую обнаружил с "advzip.exe" - даты без учёта часового пояса почему-то сохраняются. Упаковал-распаковал и +X часов от своего часового пояса потерял. Тестировал распаковку как через WinRAR, так и через unzip (GNU'шный zip) и даже официальный DOS'овский pkunzip 2.04g - везде при распаковке часы теряются. Не смертельно, но KZIP-то жал правильно. Ещё как-нибудь при упаковке показывалась бы какая сейчас итерация идёт, а то, кроме имени файла, вообще ничего нет.
А ещё "advpng.exe" не умеет дату у файла сохранять, но это я могу внешней программой сделать.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Grom PE
May 1 2016, 22:42
Сообщение #23


Advanced Member
***

Группа: CTPAX-X
Сообщений: 84
Регистрация: 7-February 08
Из: i@grompe.org.ru
Пользователь №: 3,120
Спасибо сказали: 95 раз(а)



QUOTE(-=CHE@TER=- @ May 2 2016, 03:51) *
Единственная проблема, которую обнаружил с "advzip.exe" - даты без учёта часового пояса почему-то сохраняются.

Действительно. Предлагаю три варианта:
1. Создавать архив без сжатия, а этой утилитой пережимать;
2. Поменять в исходниках в zip.cc time2zip() вызов gmtime на localtime и скомпилировать;
3. Пропатчить вызов gmtime на localtime в бинарнике (он там третий по счёту, 0xB701: 7B → 2B).


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
May 2 2016, 14:13
Сообщение #24


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,313
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 306 раз(а)



Во! Третий вариант - это то что нужно! Спасибо большое!
А пережимать ей всё равно иногда придётся, потому что она каталоги сжимать не умеет.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
May 15 2022, 19:07
Сообщение #25


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,313
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 306 раз(а)



QUOTE(Grom PE @ May 1 2016, 22:42) *
Действительно. Предлагаю три варианта:
1. Создавать архив без сжатия, а этой утилитой пережимать;
2. Поменять в исходниках в zip.cc time2zip() вызов gmtime на localtime и скомпилировать;
3. Пропатчить вызов gmtime на localtime в бинарнике (он там третий по счёту, 0xB701: 7B → 2B).
Надо же, оказывается 6 лет уже не обновлял эти программы.
Я использую вариант №1, но на случай, если кому-то понадобится вариант №3, то для последней версии advancecomp программы advzip.exe v2.3 (2022.04.15) смещение будет такое: 0x6BAC: 98 → A0.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

2 Страниц V < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 6th July 2022 - 00:23