¿Podría ayudarme a arreglar el siguiente script?
Tengo un código de acción que uso dentro de Automator para rellenar cualquier imagen de tamaño arrojada en un lienzo cuadrado. En otras palabras, no necesita alimentarlo con las dimensiones literales del lado más largo y luego decirle que coincida con la otra dimensión con los mismos píxeles. (Para 3000 imágenes que llevaría tanto tiempo como exportar cada una manualmente).
Hasta Sierra, esta secuencia de comandos funcionaría para cualquier número de imágenes que le lancé, ya sea que le dijera a Automator que actúe sobre imágenes seleccionadas, imágenes dentro de una carpeta o si especifico las imágenes desde Automator. Ahora, cuando comienza la secuencia de comandos, se abre una ventana del Finder que me solicita que seleccione un solo elemento. (Y la selección de múltiplos desde esta ventana no solucionará el problema, ya que el script busca procesar un elemento por iteración). En otras palabras, el script se ejecuta una vez y luego termina. Me gustaría saber cómo hacer que se ejecute para la cantidad de elementos que necesito, y me gustaría saber cómo hacer que el script funcione sin solicitar elementos desde una ventana del Finder, especialmente si ya usé Get from within Automator para elegir los elementos en cuestión.
Por lo tanto, está claro que el script se está comportando de manera diferente ahora, no el flujo de trabajo en Automator. Y para probar esto, el script podría ejecutarse con la misma facilidad desde el Editor de AppleScript, pero hace lo mismo.
Aquí está el script en cuestión:
set this_file to choose file without invisibles
-- indicate the proportions for the pad area
set H_proportion to 1
set V_proportion to 1
try
tell application "Image Events"
-- start the Image Events application
launch
-- open the image file
set this_image to open this_file
-- get dimensions of the image
copy dimensions of this_image to {W, H}
-- calculate pad dimensions
if H_proportion is greater than V_proportion then
set the new_W to (H * H_proportion) / V_proportion
set pad_dimensions to {new_W, H}
else
set the new_H to (W * V_proportion) / H_proportion
set pad_dimensions to {W, new_H}
end if
-- perform action
pad this_image to dimensions pad_dimensions with pad color {65535, 65535, 65535}
-- save the changes
save this_image with icon
-- purge the open image data
close this_image
end tell
on error error_message
display dialog error_message
end try