Русский
Русский
English
Статистика
Реклама

Перевод 12-мегапиксельное фото козы и пакетное изменение размеров файлов на Mac

В прошлом месяце мы с женой поехали на выходные в Напу. Это хорошее место. Там много чем можно занять себя на воздухе, да и ехать туда из Сан-Франциско недалеко.

Мы отлично провели время. А когда вернулись домой и я сбросил на компьютер фотографии, которые снял в путешествии, я обратил внимание на то, что они занимают страшно много места. Я вовсе не фотограф, хотя мне и очень нравится делать снимки, главная цель которых сохранить память о чём-то хорошем.

Один из снимков меня прямо-таки зацепил. Это была 12-мегапиксельная фотография козы размером почти в 10 Мб. Такая качественная, что невооружённым глазом этого толком и не оценить. Это навело меня на размышления. Мне хотелось бы сохранить этот снимок как часть воспоминаний о том, чем мы занимались, но перспектива тратить на него столько дискового пространства меня вовсе не радовала. Снимки такого размера способны довольно быстро заполнить даже немаленький диск. Я понял, что мне нужна программа для пакетного изменения размеров подобных файлов.


Фото козы (30244032, HEIC), которое было преобразовано в JPG с уменьшением разрешения

Я, кроме прочего, люблю, чтобы вокруг был бы порядок, чтобы у всего было бы своё место. Мне нужно было не только поменять размеры изображений в пакетном режиме. Мне хотелось ещё и сохранить метаданные снимков и EXIF-данные (дату, время, место съёмки и так далее).

Мне не удалось найти инструмент для решения этой простой, но очень важной для меня задачи. Поэтому я задался целью сделать такой инструмент своими силами. После того, как я подобрал подходящие средства разработки и написал, а потом довёл до ума код, сделав его максимально простым и эффективным, у меня получилось то, что показано ниже. В коде имеются комментарии, которые помогут тому, кому это интересно, в нём разобраться. Он поддерживает обработку изображений в форматах JPG и HEIC.

#!/bin/bash#задаём максимальную ширину изображения в пикселяхmaxwidth=2000#где находятся фотографии?if [ $# -eq 0 ]; thenimgFolder="untitled folder"elseimgFolder=$1ficd "$imgFolder"pwd#создаём временную папку для хранения изменённых фотографийif [ -d new ]; thenrm -rf newfimkdir new#находим все JPG-изображения в заданной папкеfileCnt=$(ls *.[jJ][pP]*[Gg] | wc -l)cnt=0echo "Will search for JPGs"find . -maxdepth 1 -iname '*.jp*g' |while read filedo((cnt++))imgwidth=`sips --getProperty pixelWidth "$file" | awk '/pixelWidth/ {print $2}'`if [ $imgwidth -gt $maxwidth ]; thenimgheight=`sips --getProperty pixelHeight "$file" | awk '/pixelHeight/ {print $2}'`#пропускаем панорамные снимкиif [ $((imgwidth / imgheight)) -lt 2 ]; thenecho "$cnt/$fileCnt $file $imgwidth  $maxwidth"sips -Z $maxwidth "$file" --out new/"$file" > /dev/null 2>&1touch -r "$file" new/"$file"fifidone#находим все HEIC-изображения в заданной папкеfileCnt=$(ls *.HEIC | wc -l)cnt=0echo "Will search for HEICs"find . -maxdepth 1 -iname '*.heic' |while read filedo((cnt++))imgwidth=`sips --getProperty pixelWidth "$file" | awk '/pixelWidth/ {print $2}'`if [ $imgwidth -gt $maxwidth ]; thenimgheight=`sips --getProperty pixelHeight "$file" | awk '/pixelHeight/ {print $2}'`if [ $((imgwidth / imgheight)) -lt 2 ]; thenecho "$cnt/$fileCnt $file $imgwidth  $maxwidth"sips -s format jpeg -Z $maxwidth "$file" --out new/"$file".jpg > /dev/null 2>&1touch -r "$file" new/"$file".jpgrm "$file"fifidoneecho ""echo "Will replace originals..."echo "Done!"rsync -a new/ .rm -rf new

Если вы решите воспользоваться этим скриптом сохраните вышеприведённый код в файле resizeImages.sh, настройте максимальную ширину изображения в пикселях, а потом запустите скрипт из терминала, выполнив команду вида ./resizeImages.sh photos. Здесь photos это имя папки, в которую были скопированы снимки с iPhone. Для сброса снимков с iPhone на компьютер рекомендую пользоваться программой Image Capture.

Как вы подходите к обработке и хранению больших фотографий?

Источник: habr.com
К списку статей
Опубликовано: 18.04.2021 12:07:38
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании ruvds.com

Обработка изображений

Фототехника

Фотография

Разработка

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru