Estoy un poco confundido con el enfoque sobre la manera correcta de comprimir las imágenes que desea trabajar. Como se ha mencionado, hay sips
, un ejemplo de trabajo basado en tirar de un directorio de imágenes y paso a paso a través de la lista con un cambio de tamaño si la anchura no es 800px:
property theWidth : 800
tell application "Finder"
try
## Choose directory
set imageDir to choose folder with prompt "Please select directory."
## Get list of items in diretory
set the imageList to list folder imageDir without invisibles
## Step through images
repeat with theImage in imageList
## Turn path to posix path
set imagePos to quoted form of POSIX path of ((imageDir as text) & contents of theImage)
## Get image width
set imgWidth to (do shell script "sips -g pixelWidth " & " " & imagePos & " " & "| tail -n1 | cut -d' ' -f4") as integer
## if not equal to set variable width resize
if imgWidth ≠ theWidth then do shell script "sips --resampleWidth " & theWidth & " " & imagePos
end repeat
on error error_message
display dialog error_message
end try
Que es sólo un ejemplo de lo que puede hacer con el ancho. Como se mencionó en el comentario que usted puede comprobar para ver que es más largo que la anchura o la altura y cambiar el tamaño a partir de ahí. Si no man sips
en el Terminal se puede tirar todo tipo de información. El código anterior utiliza la cola y corte para recortar el retorno. Cambio de tamaño se realiza con --resampleWidth
. Usted podría volver a muestrear en función de la altura con --resampleHeight
.
Con respecto a la compresión de aspecto, si estos son los archivos Png se puede utilizar Optipng. Si usted quiere algo que se puede ejecutar con los archivos Png y Jpg usted podría utilizar Trimage. AppleScript/Automater también podría ser enlistados en el uso de una utilidad de compresión. Usted sólo necesita llamar desde bin
la casilla de verificación si existe una compresión:
try
set checkBin to "(ls usr/local/bin/optipng >> /dev/null 2>&1 && echo yes) || echo no"
return do shell script checkBin
on error error_message
return error_message
end try
La de arriba es la comprobación de OptiPNG. Si usted quería comprobar si algo se ha instalado con HomeBrew usted podría utilizar un comando similar en /usr/local/Cellar
.
Todos los anteriormente mencionados podrían ser completamente hecho en un Script de Shell. Sólo depende de lo que se quiere y cómo se quiere ejecutar el código.