1 votos

¿repetir actionscript en Sierra?

¿Podríais ayudarme a arreglar el siguiente script?

Tengo un actionscript que utilizo dentro de Automator para rellenar cualquier tamaño de imagen que se le lance en un lienzo cuadrado. Es decir, no hace falta que le dé las dimensiones literales del lado más largo y luego le diga que iguale la otra dimensión con los mismos píxeles. (Para 3000 imágenes eso llevaría tanto tiempo como exportar cada una manualmente).

Hasta Sierra, este script funcionaba para cualquier número de imágenes que le lanzara, tanto si le decía a Automator que actuara sobre imágenes seleccionadas, imágenes dentro de una carpeta, o si especificaba las imágenes desde dentro de Automator. Ahora, cuando el scriptcomienza, abre una ventana del Finder pidiéndome que seleccione un solo elemento. (Y elegir varios desde esta ventana no soluciona 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 por el número de elementos que necesite, y me gustaría saber cómo hacer que el script funcione sin solicitar elementos desde una ventana del Finder, sobre todo si ya he utilizado Get desde Automator para elegir los elementos en cuestión.

Así que está claro que el script se comporta de forma diferente ahora, no el flujo de trabajo en Automator. Y para comprobarlo más a fondo, el script podría ejecutarse igualmente 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

0voto

user3439894 Puntos 5883

Si he entendido tu pregunta, no quieres que te pida los archivos sobre los que actuar y quieres que actúe sobre todos los archivos especificados, lo siguiente lo hará.

  • En Automatizador crear un nuevo Flujo de trabajo . (Automator > Archivo > Nuevo > Flujo de trabajo)
  • Añade un Obtener los elementos del buscador especificados acción .

    • Añade los elementos que quieres que estén en el Obtener los elementos del buscador especificados acción . Los elementos pueden ser archivos y/o carpetas.
  • Añade un Obtener el contenido de la carpeta acción .

    • Esto es para manejar si un artículo en el Obtener los elementos del buscador especificados acción es un Carpeta .
  • Añade un Ejecutar AppleScript acción .

    • Añade el siguiente AppleScript código para reemplazar el valor por defecto código .

    on run {input, parameters} set list_of_files to input repeat with this_file in list_of_files -- 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 end repeat return input end run

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X