Manipulando e editando imagens no terminal do Mac com o utilitário nativo sips

O sips é um utilitário de linha de comando que vem instalado com o OS X, e coloca uma série de funções avançadas de manipulação de imagens ao alcance do seu Terminal ou dos seus scripts, sempre fazendo uso dos recursos nativos do sistema operacional.

Não que faltem alternativas para isso: você pode realizar as mesmas funções por meio do Pré-Visualização, de Applescripts, de rotinas do Automator, por apps diversos ou mesmo por meio do tradicional ImageMagick, velho conhecido de muita gente que chegou ao Mac vindo de outro Unix ou do Linux.

Mas para os fãs do Terminal ou dos scripts shell, o sips tem 2 vantagens inerentes: já vem instalado, e faz uso das rotinas de manipulação de imagem do sistema operacional (as mesmas disponíveis para apps ou para o Automator, por exemplo).

O uso básico do sips é bem simples, conforme expresso em sua man page, mas para esclarecer vou incluir alguns exemplos de operações comuns, sempre exemplificando com a manipulação da imagem acima, da atleta russa Elena Isinbayeva na final da sua modalidade nos jogos de Beijing, e considerando que o arquivo dela esteja no diretório corrente do Terminal.

A versão inicial da foto, acima, tem 500x578 pixels (largura x altura), e o primeiro ponto a observar é que o sips trata as dimensões das imagens na ordem inversa e sem "x", ou seja, para ele as dimensões da imagem acima são 578 500.

Antes de prosseguir, uma dica: todos os comandos a seguir podem ser aplicados a um lote de imagens de uma vez só, substituindo o nome de arquivo por uma expressão como *.jpg ou *.png.

Vamos começar reduzindo as dimensões da imagem com segurança, ou seja, garantindo que a mesma proporção de largura e altura sejam mantidas. Para isso, usamos o parâmetro -Z seguido da altura máxima que a imagem deverá ter (e o sips se encarregará de descobrir como melhor ajustá-la). Por exemplo, se eu usar o comando sips -Z 450 final-salto.jpg, ele ajustará a a altura da imagem original para caber nos 450 pixels determinados, e ajustará a largura proporcionalmente à nova altura, assim:

Se preferir especificar a largura, e não a altura, troque o -Z por --resampleWidth. E se você desejar forçar determinadas dimensões, pode recorrer à versão minúscula do comando exemplificado acima, aí seguida de uma altura e largura. Por exemplo, o comando sips -z 450 450 final-salto.jpg transformaria a imagem acima em um quadrado, com perda das proporções originais.

Outra operação comum é rotacionar uma imagem em 90 graus, para ajustar as fotos batidas "em pé" em câmeras que não ajustam a imagem automaticamente considerando a orientação. Não é o caso da imagem acima, mas vamos rotacioná-la mesmo assim, com o comando sips -r 90 final-salto.jpg , lembrando que o número de graus mencionado como parâmetro será aplicado no sentido contrário ao do relógio. O resultado:

Outra operação comum é a inversão, para corrigir imagens tiradas em espelhos. Para isso, basta usar o parâmetro -f seguido da especificação horizontal ou vertical. Vamos espelhar a nossa atleta horizontalmente com o comando sips -f horizontal final-salto.jpg para obter o resultado a seguir:

O sips faz bem mais operações: altera cores, inspeciona imagens, faz crop, pad e mais. Veja os detalhes na documentação online do sips.

Comentar

Comentários arquivados

Artigos recentes: