Como você usa “goles” no terminal para redimensionar uma imagem, sem upgraling?

5

Eu tenho alguns códigos que tenho usado para redimensionar imagens no Mac OS X através do prompt de comando (e / ou quicksilver), para uma largura ou altura máxima de 500px. O único problema é que, se a imagem original for menor que 500px de largura ou altura, os goles aumentarão a escala. Eu gostaria que simplesmente pulasse essas imagens.

Como posso fazer isso acontecer?

Este é o meu código:

#!/bin/bash

for ARG in "$@"
    do
        sips -Z 500 -s format jpeg "$ARG" --out "${ARG%.*}.jpg"
done
    
por cwd 03.02.2011 / 13:29

2 respostas

4

Processe a saída de sips --getProperty pixelHeight filename.ext e sips --getProperty pixelWidth filename.ext e use-a em uma condição, somente executando a operação de redimensionamento, se desejado.

#!/bin/bash
height='sips --getProperty pixelHeight url.png | sed -E "s/.*pixelHeight: ([0-9]+)//g" | tail -1'
width='sips --getProperty pixelWidth url.png | sed -E "s/.*pixelWidth: ([0-9]+)//g" | tail -1'

if [[ $height -gt 500 || $width -gt 500 ]]; then
    growlnotify -m "large file needs reducing"
fi

Você pode fazer o resto sozinho.

    
por 03.02.2011 / 13:42
0

Isto lê a largura e a altura da imagem em um comando

#!/bin/bash
size=($(sips -g pixelWidth -g pixelHeight $theFile | grep -o '[0-9]*$'))

if [[ ${size[0]} -gt 500 || ${size[1]} -gt 500 ]]; then
    growlnotify -m "large file needs reducing"
fi
    
por 03.06.2018 / 19:36