Mostrando resultados del 1 al 5 de 5

Tema: Script para girar imagen sucesivamente hasta completar 360 grados

  1. #1
    Fecha de Ingreso
    abr 2007
    Ubicación
    Jaen
    Mensajes
    1.215

    Predeterminado Script para girar imagen sucesivamente hasta completar 360 grados



    hola, quería hacer una pregunta / solicitud, a ver si alguien sabe como hacer que una imagen vaya rotando con un script, lo he probado con una acción pero me degrada la imagen y al cabo de 120 copias es un borrón, me intento explicar…

    imagina una rueda, engranaje, etc.. en un lienzo de 41x41 pixels, el script debería hacer lo siguiente:



    1. agranda el lienzo por la derecha en 41 pixels (ahora ya mide 41+41)
    2. duplica la capa original de la rueda
    3. la copia recién creada de la capa original se desplaza hacia la derecha en 41 pixels (se sitúa justo a la derecha de la original, por eso ampliamos el lienzo en 41 pixels)
    4. esta ultima capa, copia de la capa original se gira 3 grados (o lo que se desee hasta que complete los 360º y de la vuelta completa a la imagen)
    5. repetimos estos pasos hasta completar el giro de 360º…
      (1. agrandamos 41 pixels por la derecha con lo que el lienzo mide 41+41+41, 2. duplicamos la capa original SIEMPRE LA ORIGINAL, 3. esta segunda copia se desplaza a la derecha 41+41 pixels, 4. esta segunda copia se gira 6 grados (3+3) grados y otra vez hasta 360/3 = 120 veces, si girásemos 4 grados 360/4=90 veces…)


    el lienzo se puede ampliar de una sola vez pidiendo el número de imágenes que se desea obtener hasta el giro completo, 360/número_de_imágenes nos daría los grados a girar cada imagen, espero haberme explicado.

    Gracias.


  2. #2
    Fecha de Ingreso
    ene 2012
    Ubicación
    A un clic de ti...
    Mensajes
    13.468

    Predeterminado

    Cita Iniciado por franciscojose Ver Mensaje
    hola, quería hacer una pregunta / solicitud, a ver si alguien sabe como hacer que una imagen vaya rotando con un script, lo he probado con una acción pero me degrada la imagen y al cabo de 120 copias es un borrón, me intento explicar…

    imagina una rueda, engranaje, etc.. en un lienzo de 41x41 pixels, el script debería hacer lo siguiente:



    1. agranda el lienzo por la derecha en 41 pixels (ahora ya mide 41+41)
    2. duplica la capa original de la rueda
    3. la copia recién creada de la capa original se desplaza hacia la derecha en 41 pixels (se sitúa justo a la derecha de la original, por eso ampliamos el lienzo en 41 pixels)
    4. esta ultima capa, copia de la capa original se gira 3 grados (o lo que se desee hasta que complete los 360º y de la vuelta completa a la imagen)
    5. repetimos estos pasos hasta completar el giro de 360º…
      (1. agrandamos 41 pixels por la derecha con lo que el lienzo mide 41+41+41, 2. duplicamos la capa original SIEMPRE LA ORIGINAL, 3. esta segunda copia se desplaza a la derecha 41+41 pixels, 4. esta segunda copia se gira 6 grados (3+3) grados y otra vez hasta 360/3 = 120 veces, si girásemos 4 grados 360/4=90 veces…)


    el lienzo se puede ampliar de una sola vez pidiendo el número de imágenes que se desea obtener hasta el giro completo, 360/número_de_imágenes nos daría los grados a girar cada imagen, espero haberme explicado.

    Gracias.

    Entiendo más o menos lo que necesitas, soy usuario Linux, en general no uso herramientas propietarias ni tengo el más mínimo interés en manejarlas, sólo uso a nivel gráfico Canon DPP y las Nik Collection.

    Lo primero es que aclares en el hilo, el entorno en el que trabajas (Windows, MacOS, Linux, etc) y las aplicaciones que usas. Con eso los compañeros pueden hacerse una idea mejor.

    Si tienes ya un script hecho, sería bueno que lo compartieras, así otros lo pueden ver y quizás corregir/mejorar.

    Otro buen sitio donde mirar es en los foros de la herramienta que uses.
    Clic, clic, clic...

  3. #3
    Fecha de Ingreso
    abr 2007
    Ubicación
    Jaen
    Mensajes
    1.215

    Predeterminado

    tenia la v1 de este script pero lo he perdido, por favor, ¿alguien me puede pasar la última versión?
    https://www.canonistas.com/foros/sho...=31842&page=24

    lo que necesito es algo parecido a esto pero que haga la secuencia de rotación.
    gracias, un saludo.

  4. #4
    Fecha de Ingreso
    abr 2007
    Ubicación
    Jaen
    Mensajes
    1.215

    Predeterminado

    bueno ya lo he conseguido, he encontrado la v1 del script de la gincana, he ido probando y cambiando cosas y al final ha salido esto, copiado en el bloc de notas y lo guardais como Rotar360.jsx, espero que os sirva, un saludo


    var strtRulerUnits = preferences.rulerUnits
    preferences.rulerUnits = Units.CM


    var docRef = activeDocument


    var docResolution = Number(docRef.resolution)


    function getCSVersion() {
    return parseInt(version)
    }

    var rfactor = 1
    if (getCSVersion() > 7 && preferences.rulerUnits == Units.CM){
    rfactor = 72 / 2.54 // CM
    }
    if (getCSVersion() > 8 && preferences.rulerUnits == Units.CM ) {
    rfactor = Number(docResolution / 72) // CM
    }
    if (getCSVersion() > 8 && preferences.rulerUnits == Units.PIXELS ) {
    rfactor = 1 // PIXELS
    }
    if (getCSVersion() >= 10 ) { rfactor = 72 / 2.54 } // CM}



    var ancho_imagen = Number(docRef.width)


    if (docRef.width!=docRef.height)
    {
    alert("Para hacer esto la imagen debe ser cuadrada");
    } else {
    //Pregunta antes de empezar
    var cambiarAncho = confirm ("Quiere hacer una secuencia de 360º \n pulsa no para cancelar o si para continuar")
    if (cambiarAncho == true)
    {
    var nImagenes = prompt("Introduzca el numero de imagenes a generar:", "")
    if ((nImagenes) && (ancho_imagen * nImagenes * rfactor <= 30000))
    {
    docRef.resizeCanvas(docRef.width*nImagenes, docRef.height, AnchorPosition.MIDDLELEFT)
    var i;
    var grados = Number(360/nImagenes);

    for (i = 1; i < nImagenes; i++)
    {
    var copia = docRef.activeLayer.duplicate();
    copia.translate(ancho_imagen*i);
    copia.rotate(grados * i);
    copia.name=grados * i;
    }
    } else {
    alert("Esta imagen es demasiado grande, reduzca la imagen o introduzca un número menor de giros.");
    }
    }
    }

  5. #5
    Fecha de Ingreso
    jun 2012
    Mensajes
    2.935

    Predeterminado

    Cita Iniciado por franciscojose Ver Mensaje
    bueno ya lo he conseguido, he encontrado la v1 del script de la gincana, he ido probando y cambiando cosas y al final ha salido esto, copiado en el bloc de notas y lo guardais como Rotar360.jsx, espero que os sirva, un saludo


    var strtRulerUnits = preferences.rulerUnits
    preferences.rulerUnits = Units.CM


    var docRef = activeDocument


    var docResolution = Number(docRef.resolution)


    function getCSVersion() {
    return parseInt(version)
    }

    var rfactor = 1
    if (getCSVersion() > 7 && preferences.rulerUnits == Units.CM){
    rfactor = 72 / 2.54 // CM
    }
    if (getCSVersion() > 8 && preferences.rulerUnits == Units.CM ) {
    rfactor = Number(docResolution / 72) // CM
    }
    if (getCSVersion() > 8 && preferences.rulerUnits == Units.PIXELS ) {
    rfactor = 1 // PIXELS
    }
    if (getCSVersion() >= 10 ) { rfactor = 72 / 2.54 } // CM}



    var ancho_imagen = Number(docRef.width)


    if (docRef.width!=docRef.height)
    {
    alert("Para hacer esto la imagen debe ser cuadrada");
    } else {
    //Pregunta antes de empezar
    var cambiarAncho = confirm ("Quiere hacer una secuencia de 360º \n pulsa no para cancelar o si para continuar")
    if (cambiarAncho == true)
    {
    var nImagenes = prompt("Introduzca el numero de imagenes a generar:", "")
    if ((nImagenes) && (ancho_imagen * nImagenes * rfactor <= 30000))
    {
    docRef.resizeCanvas(docRef.width*nImagenes, docRef.height, AnchorPosition.MIDDLELEFT)
    var i;
    var grados = Number(360/nImagenes);

    for (i = 1; i < nImagenes; i++)
    {
    var copia = docRef.activeLayer.duplicate();
    copia.translate(ancho_imagen*i);
    copia.rotate(grados * i);
    copia.name=grados * i;
    }
    } else {
    alert("Esta imagen es demasiado grande, reduzca la imagen o introduzca un número menor de giros.");
    }
    }
    }
    pues si ya lo tienes y funciona fenomenal.
    añado que los códigos para rotar imágenes puedes verlos y probarlos en distintas librerias de java o mejor y mas fácil para web javascript y sus potentísimas librerias como Jquery, míralo y hala a alucinar. y a currarselo claro...

Tags for this Thread

Marcadores

Normas de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •