2015-02-12 13 views

cevap

59

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

+0

Ben 'hata alıyorum: –

5

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

+0

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' –

+0

@AlexeySh için Sen PNG için bir delege eksik, [buradan] (http://www.imagemagick.org/download/delegates/) – L3viathan

+0

Kazanan yüklemeyi deneyin, ben sadece 'homebrew install ile yüklü bu not imagemagick' –

4

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" 
İlgili konular