Подтвердить что ты не робот

Как изменить размер изображений с помощью терминала на Mac OSX?

Мне нужен простой и бесплатный способ изменения размеров изображений и выполнения пакетных заданий, если это необходимо. Бесплатное программное обеспечение для обработки изображений было более сложным в использовании, чем должно быть.

4b9b3361

Ответ 1

Как указано LifeHacker, следующая команда будет делать это очень легко:

sips -Z 640 *.jpg

Чтобы процитировать их объяснение:

"Итак, что происходит? Ну," sips "- это используемая команда, и -Z сообщает, что она поддерживает соотношение сторон изображения." 640 "- это максимальная высота и ширина, которые будут использоваться, и" *.jpg "инструктирует ваш компьютер, чтобы уменьшить размер каждого изображения, заканчивающегося на .jpg. Это очень просто и сжимает ваши изображения очень быстро. Просто не забудьте сделать копию сначала, если вы хотите сохранить их больший размер".

Источник: http://lifehacker.com/5962420/batch-resize-images-quickly-in-the-os-x-terminal

Ответ 2

imagemagick помогает:

$ convert foo.jpg -resize 50% bar.jpg

Есть много других вещей, которые он может сделать, включая преобразование между форматами, применение эффектов, обрезку, раскрашивание и многое, многое другое.

Ответ 3

Здесь script, который использует sips для рекурсивного изменения размера всех изображений в данной папке (и ее подпапках) и помещает измененные изображения в папку resized на том же уровне дерева, что и изображение: https://gist.github.com/lopespm/893f323a04fcc59466d7

#!/bin/bash
# This script resizes all the images it finds in a folder (and its subfolders) and resizes them
# The resized image is placed in the /resized folder which will reside in the same directory as the image
#
# Usage: > ./batch_resize.sh

initial_folder="/your/images/folder" # You can use "." to target the folder in which you are running the script for example
resized_folder_name="resized"

all_images=$(find -E $initial_folder -iregex ".*\.(jpg|gif|png|jpeg)")

while read -r image_full_path; do
    filename=$(basename "$image_full_path");
    source_folder=$(dirname "$image_full_path");
    destination_folder=$source_folder"/"$resized_folder_name"/";
    destination_full_path=$destination_folder$filename;

    if [ ! -z "$image_full_path" -a "$image_full_path" != " " ] &&
        # Do not resize images inside a folder that was already resized
        [ "$(basename "$source_folder")" != "$resized_folder_name" ]; then 

        mkdir "$destination_folder";
        sips -Z 700 "$image_full_path" --out "$destination_full_path";

    fi

done <<< "$all_images"

Ответ 4

Предыдущие ответы верны, вы также можете использовать mogrify. Например, если вы хотите уменьшить размер многих изображений в каталоге на 60%, используйте команду ниже:

Конечно, всегда делайте резервную копию ваших изображений в другой каталог, прежде чем играть с этой командой.

mogrify -resize 60% *

Ответ 5

Волшебный трюк для itunesconnect :)

    mkdir ./iPhone5-5-Portrait
    sips -z 2208 1242 *.jpg -s formatOptions 70 --out ./iPhone5-5-Portrait
    sips -z 2208 1242 *.png --out ./iPhone5-5-Portrait