Ver la Versión Completa : Script para girar imagen sucesivamente hasta completar 360 grados
franciscojose
03/10/21, 20:14:03
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:
agranda el lienzo por la derecha en 41 pixels (ahora ya mide 41+41)
duplica la capa original de la rueda
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)
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)
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.
NerveNet
04/10/21, 11:48:33
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:
agranda el lienzo por la derecha en 41 pixels (ahora ya mide 41+41)
duplica la capa original de la rueda
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)
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)
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.
franciscojose
04/10/21, 12:55:56
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/showthread.php?t=31842&page=24
lo que necesito es algo parecido a esto pero que haga la secuencia de rotación.
gracias, un saludo.
franciscojose
05/10/21, 01:09:11
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.");
}
}
}
dialmais1
05/10/21, 20:05:25
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...:OK
vBulletin® v4.2.5, Derechos de autor ©2000-2025, Jelsoft Enterprises Ltd. Traducido por mcloud - vBHispano.com