AnsweredAssumed Answered

Tratamiento de imagenes con un script

Question asked by ruben.arjonilla on Nov 18, 2013
Buenas,

Tengo una regla en una carpeta, que cuando subo un archivo de tipo imagen, me ejecuta un script situado en /DataDictionary/scripts.
Este script me genera 2 archivos mas y los redimensiona, uno a 170px y otro a 1024px de width.

La disposición de las carpetas es la siguiente:
Dentro de la carpeta donde subo la imagen, tengo otra carpeta llamada tmp, que es donde creo provisionalmente la imagen redimensionada.

El problema que tengo, es que a veces la imagen original, es mas pequeña de 1024px, y en este caso no quiero que me la redimensione a 1024px, ya que pierdo calidad.

Pero no se como hacer el if para comprobar las dimensiones de la imagen.

este es el codigo del script, y lo que necesito saber como hacer es la parte del if(…………)

main();

function main()
{
   var folder = document.parent;
   folder = folder.childByNamePath("tmp");
         
   //cojo el nombre del documento quitandole la extension
   var name = document.name;
   var nameDocArr = new String(document.name);
   var nameDoc = nameDocArr.split(".");
   var nameDocDef = nameDoc[0];
   for(var i=1; i<nameDoc.length-1; i++)
   {
      nameDocDef += "."+nameDoc;
   }
   
   //aquí debería haber la comprobación del tamaño de la imagen original, si esta es mas grande que 1024, la tengo que redimensionar
   if(…………)
   {
      //redimensiono la imagen a 1024px, con el nombre de la imagen añadiéndole el sufijo "_1024"
      //si la imagen se llamaba imagen.jpg, la redimensionada se llamara imagen_1024.jpg
      var doc = transformarImagenName(document, "1024", folder, nameDocDef+"_1024."+nameDoc[nameDoc.length-1]);
      if(doc != null)
      {
         //si todo ha ido bien, muevo la imagen de la carpeta tmp, a la carpeta donde estaba subiendo la imagen
         doc.move(document.parent);
      }
   }

   //hago lo mismo pero redimensionando a 170px, pero aquí no tengo que comprobar nada
   doc = transformarImagenName(document, "170", folder, nameDocDef+"_170."+nameDoc[nameDoc.length-1]);
   if(doc != null)
   {
      doc.move(document.parent);
   }
}

//la función que me redimensiona la imagen
function transformarImagenName(documento,  resize, carpetaDest, nomDest)
{
   var doc = null;
   if(carpetaDest != null)
   {
      doc = documento.transformImage(documento.mimetype, "-resize "+resize, carpetaDest);
      
      doc.name = nomDest;
      doc.save();
   }
   return doc;
}


Mucha gracias de antemano

Outcomes