Gerekirse, görüntüleri yeniden boyutlandırmak ve toplu iş yapmak için basit ve ücretsiz bir yönteme ihtiyacım var. Ücretsiz görüntü işleme yazılımı olması gerekenden daha zordu.Mac OSX'teki terminali kullanarak görüntüleri nasıl yeniden boyutlandırabilirim?
cevap
olarak Lifehacker tarafından işaret aşağıdaki komutu çok kolay bunu yapacak:
sips -Z 640 *.jpg
onların açıklama alıntı:
"? Peki ne oluyor Eh, '' komutu kullanılıyor SIPs ve -Z, resmin en boy oranını korumasını söyler. "640", kullanılacak maksimum yükseklik ve genişliktir ve "* .jpg", bilgisayarınızı .jpg ile biten her görüntüyü küçültmeye yönlendirir. Gerçekten çok basittir ve resimlerinizi çok küçültür. Hızlı bir şekilde, sadece daha büyük boyutlarını korumak istiyorsanız, önce bir kopyasını aldığınızdan emin olun. "
Kaynak: http://lifehacker.com/5962420/batch-resize-images-quickly-in-the-os-x-terminal
imagemagick yardımcı olur:
efektleri, kırpma uygulayarak biçimleri arasında dönüştürme de dahil olmak üzere yapabileceği çok daha fazla şeyler,, renklendirmek ve çok vardır$ convert foo.jpg -resize 50% bar.jpg
, çok daha fazlası. İşte
dönüştürmek :-(High Sierra üzerinde bir png dönüştürmek isterken dosya error' üzerinde --extractTag yapamaz. hiçbir kod çözme temsilci bu görüntü formatı' PNG' –
@AlexeySh için Sen PNG için bir delege eksik, [buradan] (http://www.imagemagick.org/download/delegates/) – L3viathan
Kazanan yüklemeyi deneyin, ben sadece 'homebrew install ile yüklü bu not imagemagick' –
ardışık tüm belirli bir klasördeki görüntüleri (ve alt klasörler) yeniden boyutlandırmak için sips
kullandığı senaryo olduğunu ve görüntü olarak aynı ağaç düzeyde bir resized
klasörde boyutlandýrýlmýþ görüntü yerleştirir: 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"
Ben 'hata alıyorum: –