如何在 Mac OSX 上使用终端调整图像大小?
How to resize images using terminal on Mac OSX?
我需要一种简单且免费的方法来调整图像大小和执行批处理作业(如有必要)。免费的图像处理软件使用起来比它应该的更棘手。
正如 LifeHacker 所指出的,以下命令可以很容易地做到这一点:
sips -Z 640 *.jpg
引用他们的解释:
"sips
是正在使用的命令,-Z 告诉它保持图像的宽高比。"640" 是要使用的最大高度和宽度,"*.jpg" 指示您的计算机缩小每张以 .jpg 结尾的图像。这非常简单,可以非常快速地缩小图像。如果您还想保留更大的尺寸,请务必先制作一份副本。“
来源:http://lifehacker.com/5962420/batch-resize-images-quickly-in-the-os-x-terminal
imagemagick 帮助:
$ convert foo.jpg -resize 50% bar.jpg
它可以做的事情还有很多,包括格式之间的转换、应用效果、裁剪、着色等等。
这是一个脚本,它使用 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"
前面的答案都是正确的,你也可以使用mogrify。例如,如果你想将目录中许多图像的大小减少 60%,那么你可以使用以下命令:
当然,在使用此命令之前,请务必将图像备份到另一个目录中。
mogrify -resize 60% *
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
@grepit 的回复
正确的语法是:
magick mogrify -resize 60% *
并且你需要安装ImageMagick,最简单的方法是使用自制软件:
brew install imagemagick
我需要一种简单且免费的方法来调整图像大小和执行批处理作业(如有必要)。免费的图像处理软件使用起来比它应该的更棘手。
正如 LifeHacker 所指出的,以下命令可以很容易地做到这一点:
sips -Z 640 *.jpg
引用他们的解释:
"sips
是正在使用的命令,-Z 告诉它保持图像的宽高比。"640" 是要使用的最大高度和宽度,"*.jpg" 指示您的计算机缩小每张以 .jpg 结尾的图像。这非常简单,可以非常快速地缩小图像。如果您还想保留更大的尺寸,请务必先制作一份副本。“
来源:http://lifehacker.com/5962420/batch-resize-images-quickly-in-the-os-x-terminal
imagemagick 帮助:
$ convert foo.jpg -resize 50% bar.jpg
它可以做的事情还有很多,包括格式之间的转换、应用效果、裁剪、着色等等。
这是一个脚本,它使用 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"
前面的答案都是正确的,你也可以使用mogrify。例如,如果你想将目录中许多图像的大小减少 60%,那么你可以使用以下命令:
当然,在使用此命令之前,请务必将图像备份到另一个目录中。
mogrify -resize 60% *
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
@grepit 的回复
正确的语法是:
magick mogrify -resize 60% *
并且你需要安装ImageMagick,最简单的方法是使用自制软件:
brew install imagemagick