![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() |
-=CHE@TER=- |
![]()
Сообщение
#1
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,371 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 318 раз(а) ![]() |
Предлагаю в данной теме рассказывать о программах, которые помогут уменьшить размер тех или иных файлов.
1) Архиваторы не предлагать. 2) Все программы Freeware. 3) Все преобразования должны быть lossless (т.е. без потери качества, когда сами данные не трогаются оставаясь как есть). --- Первый буду: Значится сравнивались следующие программы для удаления всего лишнего с .JPG файлов - UJPG (by dwing) (1) по сравнению с JPG/PNG Stripper (by SteelBytes) (2): + снимает ещё и 'JFIF'-блок, что слегка уменьшает размер + может снимать thumb'наилы и прочий хлам ещё и с фотографий от сотового телефона, чего (2) делать почему-то не умеет + гораздо меньше занимает + не гадит в реестре и на диске в отличие от (2), который помимо реестра гадит ещё, оказывается, и в %USERPROFILE%\Application Data\SteelBytes\ - не умеет рекурсивно обходить каталог и все подкаталоги, разыскивая там JPEG файлы и обрабатывая их - не ведёт статистику сколько байт удалось съэкономить - (2), например, делает это очень подробно: сколько всего снято и в среднем (ещё выводит для каждого файла, сколько с него удалось снять и снято ли вообще, а (1) даже на уже почищенный файл, всё-равно выдаёт "OK!" даже ничего с него не сняв) - не сохраняет дату модификации у файла после его изменения - ну, (2) ещё умеет и с .PNG файлов снимать информацию лишнюю, но т.к. тут речь идёт только о .JPG, то это, на мой взгляд, не такой уж и большой минус В общем, после написания этого обзора, стало понятно, что нужно писать свой JPEGStrip не страдающий этими косяками, что и было проделано: Что делает: снимает с .JPG (.JPEG, .JPE) файлов комментарии и информацию добавляемую туда всякими программами (PhotoShop, ACDSee (по-моему с версии 4.0) и т.д; между прочим замечу, что XNView ничего никогда в изображения "левого" не пихает). Небольшие файлы, после обработки этой программой, могут похудеть в два и более (!) раза. Это очень хорошо, если выкладываете какие-нибудь скриншоты в Интернет - трафика меньше жрётся. Очень удобная программа - при обработке многих файлов, выводит напротив каждого (если он был обработан) сколько байт с него снято и суммарную информацию по всем файлам - сколько было обработано, сколько всего удалось съэкономить. Программа работает в консольном режиме - это когда вы набираете где-нибудь в FAR'е: jpgstrip *.jpg или jpgstrip image1.jpg или jpgstrip *.* /s (Ахтунг! Последний пример снимает со всех .JPE/.JPEG./JPG файлов информацию в текущем каталоге и ВО ВСЕХ подкаталогах текущего!) Для удобной работы с программой рекомендуется поместить её куда-нибудь в C:\WINDOWS\, чтобы была доступна через %PATH%. ВАЖНО: Если вы снимаете информацию с фотографий сделанной вашей цифровой камерой, то вы ПОТЕРЯЕТЕ ВСЕ ДАННЫЕ О МОДЕЛИ КАМЕРЫ, ДАТЕ И ВРЕМЕНИ, А ТАКЖЕ ВСЕХ НАСТРОЙКАХ ПРИ КОТОРЫХ БЫЛА СДЕЛАНА ФОТОГРАФИЯ - ОСТАНЕТСЯ ТОЛЬКО САМО ИЗОБРАЖЕНИЕ (превью тоже выкидывается)! Немного насчёт JPGStrip. Берём .JPG файл-фотографию и натравливаем на него эту программу. У меня получилось так: до - 648363 байта, после - 629012 байта. Т.е. в нашем случае разница (размер файла, а не на диске): 648363-629012=19351 байт или 18 Кб. А теперь представим, что у нас файл сам занимает 10 Кб от силы. Допустим 50x50 обложка, скажем, диска какого-нибудь на сайте. Я не говорил, что эта программа для всех файлов (любых размеров) делает в два и более раза меньше, я сказал, что только для небольших заметна разница или, добавлю, для тех, у которых много чего в заголовок понаписано. Для других файлов будет выигрышь при их количестве. Т.е. допустим у нас, в среднем, пусть не 18 Кб, а, скажем, 15 Кб с файла удаляется. Теперь представим, что у нас в Интернете сайт, с собственной галлереей, где мы разместили превьюшки. Нехитрым подсчётом вычисляем: 1024 Кб (мегабайт) / 15 Кб = 62.2(6) - округляем до 62. Таким образом получаем, что на каждые, примерно, полсотни картинок (неважно какого размера, хоть 2 на 2 писеля), мы экономим метр трафика. Это при том - что 15 Кб, как видно - не предел (в нашем случае - если это фотография, то всегда будет одинаковый размер информации - 18Кб). Чудес не бывает. (*улыбается*) И .JPG файл не сжать в килобайт не потеряв при этом качество. Может показаться немного маразматично так страдать из-за какого-то метра, но гора песка состоит из ма-а-аленьких песчинок. В конце концов всё просто: не хотите - не пользуйтесь. (*улыбается*) Раз уж начал писать офф-топ, то хочется сказать, что во многих играх и программах, любят всякие разности пихать в файлы, и получается, что тут немного + тут немного + тут немного = ого-го! Я считаю, что в программе, а уж тем более мультимедиа файлах не должно быть ничего лишнего. |
![]() ![]() |
Grom PE |
![]()
Сообщение
#2
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 84 Регистрация: 7-February 08 Из: i@grompe.org.ru Пользователь №: 3,120 Спасибо сказали: 95 раз(а) ![]() |
Несколько полезных программ, работающих с командной строкой:
pngout — лучший оптимизатор PNG. Инструкция. И совсем для маньяков оптимизации: DeflOpt — программа, позволяющая уменьшить размер PNG, ZIP и GZIP (.gz, .tgz) на 1-500 байт. Применять ее стоит на последнем этапе, когда другими способами файл уменьшить уже нельзя. |
-=CHE@TER=- |
![]()
Сообщение
#3
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,371 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 318 раз(а) ![]() |
Возможно для кого-то это покажется дикостью, но есть и негативные последствия использования программ для уменьшения размера.
Залил кто-то на VirusTotal мою программу в архиве. Программа была упакована при помощи KZIP с ключом /rn, который случайным образом формировал блоки данных для упаковки. Потом я обновил программу, а старую версию удалил (не имею привычки держать старые кривые версии). Затем я обнаружил, что VirusTotal ругается на мой сайт. Посмотрел из-за чего и решил убрать эту программу из списка угроз, которые когда-то были на моём сайте. Так сказать, почистить историю. Начался адовый ад - мне пришлось удалять все изменения в коде и перекомпилировать программу, чтобы она была такая же, как и старая версия. Особый головняк был с датой в заголовке PE - хорошо хоть на VirusTotal есть информация о PE-файле и я оттуда взял дату, прописал в заголовке, поправил контрольную сумму и мой файл (наконец-то!) совпал по MD5 с тем что был на VirusTotal. Я его снова залил, написал отчёты о ложном срабатывании в те антивирусы, которые там что-то находили и, в итоге, моя программа прошла проверку без проблем. Но она была в архиве созданном KZIP c ключом /rn. И, не смотря на то что в архиве больше не было других файлов, в истории моего сайта висел именно отчёт об архиве, а не о файле, который там был. Сутки я мучил kzip с ключом /rn пытаясь получить такой же результат. Из логов VirusTotal я знал размер и MD5 архива. В итоге у меня было штук 30 архивов нужного размера, но ни у одного не совпадал MD5 (да, дату создания файла программы в заголовке .ZIP архива я тоже перебирал посекундно в диапазоне +/- один день). И я сейчас даже не говорю о куче других архивов, которые были больше или меньше нужного размера, созданных в процессе. Я, вообще, для автоматизации перебора программу написал, но не суть. А суть в том, что нужного архива я так и не смог получить. Итого: я больше не пользуюсь ключом /rn в KZIP, ибо повторить результат в случае необходимости можно только чудом, а также держу теперь резервные копии старых версий программ. Да, этот ключ можно использовать когда в архиве нет исполняемых файлов, а, скажем, только текстовые или графические, но кто знает где и как этот архив потом будет использоваться, а ты не сможешь, в случае необходимости, его повторить? |
Grom PE |
![]()
Сообщение
#4
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 84 Регистрация: 7-February 08 Из: i@grompe.org.ru Пользователь №: 3,120 Спасибо сказали: 95 раз(а) ![]() |
-=CHE@TER=-, если ты хочешь ещё большего уровня сжатия, чем kzip, лучше не перебирать случайные таблицы в нём, а воспользоваться алгоритмом zopfli, который сейчас лучше всех жмёт DEFLATE. Для zip утилита с этим алгоритмом называется AdvanceComp/advzip.
Спасибо сказали:
|
![]() ![]() |
Упрощённая версия | Сейчас: 30th April 2025 - 18:47 |