2015-02-12 4 views
31

मुझे छवियों का आकार बदलने के लिए एक सरल और नि: शुल्क तरीका चाहिए और यदि आवश्यक हो तो बैच नौकरियां करें। नि: शुल्क छवि मैनिपुलेशन सॉफ़्टवेयर इसका उपयोग करने के लिए ट्रिकियर होना चाहिए।मैक ओएसएक्स पर टर्मिनल का उपयोग कर छवियों का आकार कैसे बदलें?

उत्तर

59

के रूप में Lifehacker से कहा, निम्न आदेश यह बहुत आसानी से कर देगा:

sips -Z 640 *.jpg 

उनके स्पष्टीकरण के शब्दों में:

"? तो क्या हो रहा है ठीक है," घूँट "है आदेश इस्तेमाल किया जा रहा और -Z छवि के पहलू अनुपात को बनाए रखने के लिए कहता है। "640" अधिकतम ऊंचाई और चौड़ाई का उपयोग किया जाना चाहिए और "* .jpg" आपके कंप्यूटर को .jpg में समाप्त होने वाली प्रत्येक छवि को डाउनसाइज करने के लिए निर्देशित करता है। यह वास्तव में सरल है और आपकी छवियों को बहुत कम करता है जल्दी से। अगर आप अपने बड़े आकार को भी संरक्षित करना चाहते हैं तो बस एक प्रतिलिपि बनाना सुनिश्चित करें। "

स्रोत: http://lifehacker.com/5962420/batch-resize-images-quickly-in-the-os-x-terminal

+0

मुझे हाई सिएरा पर एक पेंग बदलने की कोशिश करते समय त्रुटि त्रुटि: फ़ाइल त्रुटि पर टेक्स्ट नहीं कर सकता है :-( –

5

imagemagick मदद करता है:

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

वहाँ एक बहुत अधिक बातें यह कर सकते हैं, प्रारूपों के बीच रूपांतरण सहित, प्रभाव, फसल को लागू करने, colorize और भी बहुत कुछ कर रहे हैं, भी बहुत कुछ।

+0

कन्वर्ट: इस छवि प्रारूप 'पीएनजी' –

+0

@AlexeySh के लिए कोई डिकोड प्रतिनिधि नहीं है। पीएनजी के लिए एक प्रतिनिधि को याद करते हुए, इसे यहां से स्थापित करने का प्रयास करें (http://www.imagemagick.org/download/delegates/) – L3viathan

+0

विजेता, ध्यान दें कि मैंने इसे 'होमब्रू इंस्टॉल' के साथ इंस्टॉल किया है imagemagick' –

4

यहाँ स्क्रिप्ट 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" 
संबंधित मुद्दे