У меня есть более 2300 изображений, которые я хочу перенести на свой телефон, но в исходном размере они занимают много места (6,44 ГБ), и я хотел бы обрезать их без ущерба для качества или разрешения. Я знаю, что это можно сделать под Linux с помощью чего-то вроде pgncrush. В настоящее время у меня есть доступ к системе Windows, и все файлы в формате jpeg.
Как это сделать?
Если у вас есть изображения в несжатом формате, таком как BMP, вы можете сделать их немного меньше, не жертвуя качеством или разрешением, сохранив их в сжатом формате, который не выполняет сжатие с потерями, например PNG-24.
Изображения JPEG уже сжаты, поэтому с заданным качеством и результатом они уже настолько малы, насколько это возможно. Таким образом, если вы хотите уменьшить размер файла, вам придется пожертвовать качеством или разрешением.
Поскольку вы собираетесь показывать изображение на телефоне, вы можете немного пожертвовать качеством, не получив заметной разницы. Если изображения в формате JPEG сохранены с качеством 100, вы можете попробовать сделать копию, например, с качеством 80, и посмотреть, достаточно ли этого для ваших нужд.
Если разрешение изображений выше, чем разрешение экрана вашего телефона, вы будете использовать это дополнительное разрешение только при увеличении изображения. В этом случае уменьшение разрешения только ограничит масштабирование.
Начнем с понятия: компрессоры могут уменьшить размер чего-либо (например, текстового файла), обрабатывая его и представляя ту же информацию с использованием меньшего количества символов. Это то, как Zip уменьшает размер текстового файла. Это сжатие без потерь.
Изображения и аудио (и, следовательно, видео) используют очень большой объем информации: например, 5-мегапиксельная картинка в формате, который ничего не сжимает (например, TIFF), займет 5 мегабайт x 3 цвета *RGB) = 15 МБ места.
Чтобы уменьшить размер файла, формат JPEG приводит к потере некоторой информации об изображении: будь то качество, цвета и т. д. Вот почему вы можете открыть файл JPEG в какой-либо программе для редактирования фотографий (Photoshop, Gimp и т. д.), а затем сохранить его с помощью меньшее качество: он будет использовать меньше информации для представления вашего изображения с меньшим размером файла, но потеряет некоторое качество. Если вы (или любой другой человек) сможете заметить низкое качество, это важный момент при выборе «сколько сжатия» вы хотите.
Итак: в общем, для практических целей вы потеряете много качества, чтобы уменьшить размер изображения JPEG, потому что оно уже сжато.
Но вы хотите использовать это в своем мобильном телефоне, верно?
Вы не сказали, какой у вас мобильный телефон. Предположим, у вас есть Samsung Galaxy S3 . Вы можете ознакомиться с его характеристиками: разрешение экрана 1280x720 точек.
Таким образом, когда вы просматриваете изображение в нем, исходный размер изображения не имеет значения: вы сможете увидеть 1280x720 пикселей, потому что это максимальное количество пикселей, которое может отображать ячейка.
Если вы сделаете все свои фотографии, измените их размер до 1280x720 пикселей и откроете в своем телефоне, вы увидите их так же, как и в исходном разрешении. Вы потеряете «разрешение» исходного изображения, но это то, что вы все равно не сможете увидеть на своем телефоне...
Как вы делаете это в Windows : используйте любую программу, которая может редактировать изображения: Photoshop, Gimp, IrfanView... но поскольку вы говорите о том, чтобы делать это с большим количеством файлов, вероятно, вы думаете об ImageMagick. или аналогичная программа, которая может выполнять ту же операцию с большим количеством файлов.
Изменить: сделать это с помощью ImageMagick:
1 - скопируйте все свои изображения в новую папку (например, Temp1), чтобы не потерять оригиналы.
2 - создайте новую папку, в которой будут храниться ваши изображения после изменения размера (например: Temp2)
3 - открыть cmd
окно, перейти в каталог со скопированными картинками (Temp1)
4 - тип:
mogrify -path full_path_to_Temp2 -resize 1280x720 *.jpg
Вы можете получить оптимизацию без потерь (на основе оптимизации таблиц Хаффмана). Утилита jpegoptim предоставляет этот алгоритм.
Установите его с помощью (в Debian):
apt-get install jpegoptim
Чтобы запустить симуляцию (режим без действий):
jpegoptim -n -p dsc07844.jpg
возвращает:
dsc07844.jpg 3872x2592 24bit Exif [OK] 3057132 --> 2518805 bytes (17.61%), optimized.
Чтобы оптимизировать:
jpegoptim -p dsc07844.jpg
Он сохраняет метаданные exif
А, ну вы сами себе ответили, но изменили свои требования. «Без потери качества» и «без потери качества для невооруженного глаза» для изображений сильно различаются.
Кроме того, PNGcrush и opt-jpg работают совершенно по-разному; отметив это только потому, что вы упомянули PNGcrush в своем OP. PNGcrush оптимизирует только метаданные об изображении, а не само изображение. Вот почему вы обычно получаете только 1-2%.
Честно говоря, что касается двух изображений в вашем ответе, на мой взгляд, они выглядят совершенно по-разному. Оптимизированное изображение гораздо более размыто и имеет меньшую глубину черного. Поскольку это JPEG, это, вероятно, было сделано путем сжатия палитры, что сделает изображение... другим.
Ответ на ваш первоначальный вопрос заключается в том, что вы не можете значительно уменьшить размер файла, не влияя на какое-либо качество (за исключением ранее упомянутой экономии 1-2% за счет сжатия метаданных или тегов). т . е. путем удаления данных EXIF и т. д., в зависимости от формат файла (RAW, TIFF, JPEG).
Чтобы реально уменьшить размер файла, вы должны либо потерять качество, либо разрешение, либо и то, и другое. Если бы это было не так, фотограф не стал бы обрабатывать в RAW.
Учитывая разрешение и уровень качества, существует несколько других форматов файлов изображений, которые могут дать эквивалент, но хранить данные более компактно, чем старый стандартный JPEG.
Некоторые варианты включают
JPEG2000 , идентифицируемый расширением .jp2, является несколько более старым форматом, который никогда не становился популярным. Он использует вейвлет-преобразования, а не DCT (дискретное косинусное преобразование) в формате jpeg, что приводит к менее очевидным артефактам, что обеспечивает большее сжатие с сопоставимым воспринимаемым качеством. Они претендуют на 20% преимущество. https://en.wikipedia.org/wiki/JPEG_2000
WebP от Google использует более продвинутые алгоритмы (если я правильно понимаю, это аналог лучшего на сегодняшний день сжатия видео H.265 по сравнению с MPEG), которые, как они утверждают, могут сэкономить 40% при эквивалентном качестве. http://www.cnet.com/news/google-offers-jpeg-alternative-for-faster-web/# !
BPG (от «лучшей переносимой графики») — это новая разработка с открытым исходным кодом. По своему подходу он похож на WebP, с дополнительными преимуществами, такими как лучшая битовая глубина и динамический диапазон, но на сегодняшний день он менее совместим с различным программным обеспечением. http://bellard.org/bpg/
Если вам нужны подробные сведения о том, как эти и некоторые другие сравниваются, вы можете увидеть диаграммы и графики здесь: https://people.mozilla.org/~josh/lossy_compressed_image_study_july_2014/
Вам нужно «сжать» папку — есть разные способы сделать это — классический способ — «заархивировать» их.
В Windows (начиная с XP) щелкните правой кнопкой мыши содержащую папку, нажмите «Отправить в», затем «Сжатая папка».
Это должно уменьшить размер папки и сохранить ее как ZIP-файл.
ОДНАКО - файлы Jpeg уже сжаты в своей собственной кодировке, поэтому окончательный сжатый файл может на самом деле не сильно отличаться.
Вы можете использовать программу под названием Moo0 Image Sizer , которая позволяет изменять размер сразу нескольких изображений (по состоянию на 15 декабря 2012 г. доступны форматы jpg, png, bmp и gif).
Программа бесплатна для некоммерческого использования.
Я нашел ответ, который искал. Ответ opt-jpg для Linux. Я не нашел его в репозитории Ubuntu. Поэтому вам нужно загрузить исходный код littleutils ( http://sourceforge.net/projects/littleutils/ ), в который включен opt-jpg.
Для установки из исходников. Загрузите Tar с помощью wget и:
tar jxvf littleutils-1.0.27.tar.bz2 && cd littleutils-1.0.24
...
./configure --prefix=/usr && make && make install && make install-extra
Вы должны быть root такsudo su
Например, я использовал изображение утки. Размер неоптимизированного файла составляет 1,1 МБ, после оптимизации его размер составляет 991 КБ без потери качества изображения (невооруженным глазом) или изменения разрешения изображения. Может показаться, что разница невелика (уменьшение на 108 КБ), но с 2300+ изображений и размером в среднем 6,44 ГБ при таком же уменьшении размера может получиться много места.
Вы можете увидеть исходное изображение утки, загруженное на flickr:
И оптимизированный:
Может ли невооруженным глазом заметить разницу?
Что касается того, сколько места я на самом деле сэкономил. Вам придется подождать некоторое время, потому что мне придется позволить ему работать, когда я не использую комп. Это займет некоторое время, и я не забуду отчитаться.
в Windows я использую программу под названием RIOT (инструмент радикальной оптимизации изображений). Пока это лучшее, что я знаю.
«Image Resizer for Windows» — отличная бесплатная утилита размером менее 1 МБ для пользователей Windows. Все изображения размером 5 МБ или 10 МБ можно уменьшить до размера менее 200 КБ с почти одинаковой четкостью. Проблема в том, что эти 10-мегабайтные изображения имеют разрешение 4000 X 3000, но ваш телефон или компьютер — это только треть этого разрешения, что делает его почти таким же. Поэтому, если вы не собираетесь печатать какие-либо из них, я рекомендую сжимать ваши изображения с помощью этого очень простого инструмента. Просто выберите все файлы, щелкните правой кнопкой мыши и скажите «Изменить размер». Он преобразует 100 изображений менее чем за минуту.
Эдд
отруби
матдм
Эдд
пользователь9236
отруби
КрисФ
Гуффа
отруби
Гуффа
СФ.
Роуленд Шоу
отруби