Иногда, загружающие на сайты бывает портят страницы манги, пережимая/сохраняя их с потерями качества, чтобы они меньше весили и быстрее грузились. Это не лучший подход, так как обычно можно уменьшить размер в режиме lossless (то есть без потерь). Сейчас всё больше появляется экранов, на которых бросаются в глаза дефекты пережатия.
JPG надо сохранять с качеством 95-99 (для фотошопа это 11 уровень).
PNG надо сохранять как есть, не добавлять дизеринг (когда уменьшается количество цветов) и прочие трюки.
Пример png дизеринга:
(Кликните для увеличения)
Как видно, результат сильно отличается в худшую сторону от оригинала (который и так не самого лучшего качества).
Вроде бы вес уменьшился очень значительно, но и качество тоже значительно упало. Можно получить схожий результат по весу без потери качества.
Другой пример, когда уменьшали качество jpg:
Иногда сканы просто весят много, особенно, если это длинные и большие вебки, и их не нужно пытаться уменьшить, так как из-за своей специфики они не могут мало весить. В этом случае их лучше нарезать (в зависимости от размера) на пару страниц.
Лучшее решение для уменьшения веса - это пережатие без потерь (lossless)Пережатие не совсем правильный термин, в данном случае происходит переупаковка данных изображений в более оптимальный вид, не трогая саму картинку.
Поэтому не всегда удается без потерь получить большой выигрыш в размере. Обычно это 5% для jpg, и может доходить до 90% для png (обычно тоже 5-10%).
Реальный пример манги, которая без потерь уменьшает свой размер на 90%:
То, что было загружено на сайт изначально:
a-good-day-to-be-a-dog-tom-1-glava-65-_orig.zip [скачать](Всего 5 страниц, но весят они 170мб. Страницы весят по 30-40мб)
После оптимизации:
Страницы остались точно такими же, без каких либо потерь качества или визуальных изменений, но теперь они весят 14мб.
Так происходит, если ваш софт плохо сохраняет png файлы, это делается для того, чтобы сохранение происходило быстрее. Обычно, если сохранять с хорошей оптимизацией png файлы, то сохранение занимает много времени, и софт отключает оптимизации, чтобы сохранение происходило моментально.
Черное белые картинки нужно сохранять как grayscale (градации серого)Если картинки черно-белые, то первым делом нужно перевести их в режим цветов Grayscale (Градации серого), так как по умолчанию он RGB и из-за этого они весят в 2-3 раза больше. Плюс, в режиме grayscale png файлы оптимизируются намного лучше.
Пример:
Есть черно-белая глава на 90 страниц, которая весит 300мб, все страницы сохранены как RGB, и сами картинки не оптимизированы.
Если просто оставить их как RGB и прогнать оптимизатором, то после оптимизации глава будет весить 178мб.
Но если их перевести сначала в grayscale, а потом оптимизировать, то глава будет весить 109мб.
HINT:
img_opts (2 способ) в 80-90% случаев умеет сама определять, что это ч/б картинка и перегонять их в grayscale, но лучше сделать это вручную для надежности, особенно если вы используете 1 способ, которые не делает этого автоматически.
В фотошопе это можно сделать так:
Без фотошопа это можно сделать, запустив to_grayscale.bat из набора утилит img_opts:
Чем оптимизировать размер картинок без потерь (lossless)Для windows есть 2 удобные утилиты для оптимизации: iCatalyst и img_opts
Для linux и mac можно адаптировать img_opts.
Оба способа работают в режиме lossless, то есть без потерь.
1 способ: iCatalyst (не рекомендуется, медленно работает, хуже результат)(Требует больше действий в виде выборов и перетягивания, не умеет автоматически перегонять в grayscale, работает намного медленнее чем img_opti)
Потребуется утилита iCatalyst (используется pngwolf, truepng, zopflipng, mozjpeg)
Скачать:
icatalyst-2.7.zip [скачать]После разархивирования архива, можно будет перетягивать нужный файл или нужную папку на файл iCatalyst.bat
Путь к папке, которую вы хотите перетянуть и оптимизировать не должен содержать в себе символы скобок "( )" или другие особые символы "! % &" и т.д.
Сами файлы тоже должны называться чем проще, тем лучше.
После того, как вы перетянули файл или папку, появится выбор оптимизации:
Advanced обычно намного быстрее, но сжимает похуже. Extreme работает очень долго, но сжимает максимально.
Смысла выбирать extreme обычно нет, так как он работает в 6-7 раза дольше, а сжимает на 3-7% лучше.
Подробнее:
https://github.com/lorents17/iCatalyst 2 способ: imgs_opt (быстрое время работы и лучший результат)(Нет проблем с именованием файлов, в 80-90% случаев может сама определять grayscale и оптимизировать с этим учётом, работает в 2-3 раза быстрее, умеет в многопоточность)
Утилита imgs_opt (используется mozjpeg, ect, pingo)
Скачать v0.9.4: img_opts_henchan_v0.9.4.zip [скачать]linux (требуется установить node):
img_opts_henchan_linux_experimental.zip [скачать]v0.9.4:
- исправлена ошибка предыдущей версии, из-за чего в папке imgs не оптимизировались картинки
v0.9.3:
- теперь поддерживается перетягивание конкретных файлов (раньше при перетягивании файла оптимизация проводилась для той папки, из которой этот файл перетягивали, или просто не работало). Если вы перетягиваете или указываете папку - то работать будет с папкой. Если перетягиваете на ярлык файл или файлы, то будут обработаны только эти файлы
v0.9.2:
- поддерживается перетягивание папок с других дисков (если сам оптимизатор на другом диске)
v0.9.1:
- теперь jpg файлы тоже оптимизируются (до этого не работало из-за ошибки)
- можно перетянуть нужную папку на батник (например, можно создать на рабочем столе ярлык на start_gray192_universal.bat и перетягивать на него папки с изображениями, которые нужно оптимизировать)
- можно указать путь к рабочей папке через параметр батника
v0.9.0:
- всё переделала, теперь работает и стабильнее и лучше
- убраны медленные способы zopflipng, truepng
- добавлен способ ect (тестировалось и с pingo), который работает в 2-3 раза быстрее чем предыдущие способы
- усечение цветов для ч/б картинок теперь работает правильно (до этого не работало). Если у картинки нет сложных градиентов или их мало, то можете использовать этот способ, чтобы сэкономить еще 5-12% (этот способ уменьшения цветов без дизеринга, поэтому результат, если нет градиентов, почти идентичный)
- добавлена многопоточность (по числу ядер/потоков в системе), позволяющая ускорить оптимизацию кратно количеству ядер
- можно на лету менять количество параллельных потоков через файл config.json
Пути к файлам и сами названия файлов могут быть любыми. После распаковки в папке с утилитой будет папка imgs, туда нужно перенести нужные файлы или папки.
После этого запустить:
start_lossless.bat - если вы хотите lossless
start_gray192_universal.bat - уменьшение цветов до 192 для ч/б картинок, если у вас сканы без градиентов, то визуальных изменений не будет от такого уменьшения, зато вес уменьшится немного дополнительно
Пример работы:
Если у вас файлы уже были сохранены с оптимизацией, то результат будет похуже:
Рекомендуемый метод:
fast_gray192_(universal).bat - на 20-30% лучше для черно-белых страниц, особенно если сканы крупные и качественные.
Это универсальный способ, объединяющих 2 оптимизации (для цветных стандартное, для черно-белых страниц манги более подходящее).
Цветные страницы будут обработаны обычным fast, а черное-белые будут оптимизированы этим способом.
Стандартные способы:
start_fast.bat - работает быстро и оптимизация на хорошем уровне, нет дополнительной оптимизации для черное-белых страниц манги
start_slow.bat - на 1-8% лучше чем start_fast, но работает ощутимо дольше, обычно нет смысла
В режиме Градации серого (grayscale) доступно только 256 цветов. 256 цветов нужны только для сложных градиентов (например, когда вы перегоняете фотографию в черное-белый формат).
Для манги же требуется в разы меньше цветов, особенно если сканы крупные и качественные. Поэтому тут работает дополнительная оптимизация gray192 (это уже не 100% lossless, поэтому следует перепроверять результат визуально, но для черно-белых страниц обычно этого хватает с тройным запасом)
v0.7.5:
- Добавлен режим veyfast_gray192_(universal)_8bits. Работает быстрее всего, когда вы не хотите ждать, но точно знаете, что png оптимизируется на 60-70%
- Ускорение работы to_grayscale в 2 раза (теперь используется vips)
v0.7.4:
- Добавлен режим fast_gray192_(universal)_8bit (уменьшение цвета на каждый канал с 16bit до 8bit, 16bit обычно не имеет никаких преимуществ и 99% картинок всегда в 8bit. Если картинка была 16bit, то это дополнительно уменьшает размер на 20%)
v0.7.3:
- Добавлен режим fast_gray192_(universal)
v0.7.2:
- Лучше определяет grayscale (еще лучше чем в 0.7.1)
v0.7.1:
- Лучше определяет grayscale
- Убраны опции --lossy_8bit --lossy_transparent
- Добавлен режим veryslow (для стабильного результата с перебором из 15 вариантов zopflipng, вместо 2х самых быстрых)
- В папке soft есть файл fast_reduce_128_(only for grayscale).bat, который можно перенести в основную папку - снижает цвета до 128, если определил что картинка grayscale. Это не lossless.