elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  alguien me ayuda con un script de javascript para Photoshop
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: alguien me ayuda con un script de javascript para Photoshop  (Leído 2,147 veces)
Pedro122h

Desconectado Desconectado

Mensajes: 159


Ver Perfil
alguien me ayuda con un script de javascript para Photoshop
« en: 6 Marzo 2024, 01:35 am »

Hola estoy buscando a alguien con experiencia en script para Photoshop.
El problema que tengo es que la función resize() me está dando problemas porque la capa/layer se redimensiona basada en porcentaje y yo necesito que se redimensione en píxeles.

Código
  1. [// Abrir el documento existente
  2. var existingDoc = app.activeDocument;
  3.  
  4. // Ruta al directorio que contiene las imágenes JPG
  5. var imagePath = "~/Downloads/photopea/";
  6.  
  7. // Obtener la lista de archivos en orden alfanumérico
  8. var fileList = Folder(imagePath).getFiles("*.jpg");
  9. fileList.sort();
  10.  
  11. // Tamaño deseado de las imágenes
  12. var targetWidth = 256;
  13. var targetHeight = 82;
  14.  
  15. // Inicializar las posiciones
  16. var currentX = 0;
  17. var currentY = 1968;
  18.  
  19. // Iterar sobre cada archivo
  20. for (var i = 0; i < fileList.length; i++) {
  21.    // importar imagen
  22. alert(fileList[i]);
  23.     placeFile(fileList[i]);
  24.  
  25.    // redimensionar imagen
  26.    app.activeDocument.activeLayer.resize(targetWidth,targetHeight);
  27.  
  28.    //mover la capa a la posicion adecuada
  29.    app.activeDocument.activeLayer.translate(currentX,currentY);
  30.  
  31.    // Actualizar las posiciones para la siguiente iteración
  32.    currentX += targetWidth;
  33.  
  34.    // Verificar si se ha alcanzado el final de la fila
  35.    if (currentX > 1792) {
  36.        currentX = 0;
  37.        currentY -= targetHeight;
  38.    }
  39. }
  40.  
  41.  
  42. function placeFile(placeFile) {  
  43.  
  44.    var desc21 = new ActionDescriptor();  
  45.  
  46.    desc21.putPath( charIDToTypeID('null'), new File(placeFile) );  
  47.  
  48.    desc21.putEnumerated( charIDToTypeID('FTcs'), charIDToTypeID('QCSt'), charIDToTypeID('Qcsa') );  
  49.  
  50.    var desc22 = new ActionDescriptor();  
  51.  
  52.    desc22.putUnitDouble( charIDToTypeID('Hrzn'), charIDToTypeID('#Pxl'), 0.000000 );  
  53.  
  54.    desc22.putUnitDouble( charIDToTypeID('Vrtc'), charIDToTypeID('#Pxl'), 0.000000 );  
  55.  
  56.    desc21.putObject( charIDToTypeID('Ofst'), charIDToTypeID('Ofst'), desc22 );  
  57.  
  58.    executeAction( charIDToTypeID('Plc '), desc21, DialogModes.NO );  
  59.  
  60. }


« Última modificación: 6 Marzo 2024, 01:46 am por Pedro122h » En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.681


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: alguien me ayuda con un script de javascript para Photoshop
« Respuesta #1 en: 6 Marzo 2024, 02:47 am »

Hola, yo creo que mejor sería que usaras CSS en vez de javascript y lograrías lo que necesites hacer.


Saludos


En línea

Pedro122h

Desconectado Desconectado

Mensajes: 159


Ver Perfil
Re: alguien me ayuda con un script de javascript para Photoshop
« Respuesta #2 en: 6 Marzo 2024, 19:02 pm »

Como se hace con css ?
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.681


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: alguien me ayuda con un script de javascript para Photoshop
« Respuesta #3 en: 6 Marzo 2024, 22:28 pm »

Como se hace con css ?

https://www.dongee.com/tutoriales/como-redimensionar-una-imagen-con-css-guia-paso-a-paso/

https://es.stackoverflow.com/questions/96065/redimensionar-imagen-en-css3

https://www.freecodecamp.org/espanol/news/tutorial-de-imagenes-responsivas-en-css-como-hacer-que-las-imagenes-sean-responsivas-con-css/

https://www.delftstack.com/es/howto/css/resize-image-css/
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.075



Ver Perfil
Re: alguien me ayuda con un script de javascript para Photoshop
« Respuesta #4 en: 7 Marzo 2024, 22:43 pm »

Pues si, el método resize utiliza un valor porcentual del propio Layer, entonces te queda convertir tus medidas en pixeles a porcentajes, para esto puedes usar la propiedad bounds que te entrega un Array con las coordenadas de la Layer, y no olvidar cambiar la Regla a Pixeles para poder trabajar en dicha medida (Units.PIXELS) antes que nada:

Código
  1. // redimensionar imagen
  2. app.preferences.rulerUnits = Units.PIXELS;
  3. var b = app.activeDocument.activeLayer.bounds;
  4. var w = targetWidth * 100 / (b[2] - b[0]);
  5. var h = targetHeight * 100 / (b[3] - b[1]);
  6. app.activeDocument.activeLayer.resize(w, h);

El ancho al 100% lo obtienes con (b[2] - b[0]) que es lo mismo que restar las coordenadas x2 - x1, y el alto al 100% lo obtienes restando las coordenadas y2 - y1

x1, y1
*----------------------------+
|                            |
|                            |
|                            |
|                            |
|                            |
+----------------------------*
                          x2, y2


.bounds = [x1,  y1,  x2,  y2]
           ^    ^    ^    ^
          b[0] b[1] b[2] b[3]


Una vez obtenidos el ancho y alto al 100% solo queda aplicar una ecuación de equivalencia, por ejemplo para el ancho (width):

w    targetWidth
--- = -----------
100        x

despejando:

x = targetWidth * 100
    -----------------
            w


Lo mismo para la altura
« Última modificación: 7 Marzo 2024, 22:55 pm por EdePC » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines