Tamaño imagen


([N3] GSI) #1

Quiero recordar que alguien publico un sencillo js que permitía al importar o sobre imágenes ya guardadas ajustar el tamaño de forma sencilla, pero no lo encuentro en el foro ni por ninguna otra pagina asociada.

Alguien lo tiene localizado. Gracias.


([N1] Mario) #2

A ver si te sirve esto…

//Importamos la clase para su uso
importClass("VImage");
//Guardamos la senda del fichero a añadir
var senda = theMainWindow.fileDialogGetOpenFileName( theApp.constant( "axosGestion.dat/TXT_SEL_IMG_IMP"), "", "*.jpg;*.png");
//Creamos la imagen
var img = new VImage();
if ( img.load(senda) )
    {
        //Comprobamos que el tamaño de la foto es superior al parametrizado
		var parametrizacion = new VRegisterList(theRoot);
		parametrizacion.setTable("axosGestion.dat/PAR_EMP");
		parametrizacion.load( "EMP", [theApp.globalVarToString("axosBase.dat/EMP_ID")]);
		var registroParametrizacion = parametrizacion.readAt(0)
		//Capturamos el campo imagen
		var edFoto = theRoot.dataView().control("EDC_IMG");
		//Si es mayor que lo parametrizado, lo escalamos
		var anchoMaximo = registroParametrizacion.fieldToInt("IMG_WEB_ANC")
		if ( (img.width() > anchoMaximo) && ( anchoMaximo > 0 )){
			// Cogemos el control FOTO y le pasamos la imagen modificada
			edFoto.setImage(img.scaledToWidth(anchoMaximo, 0));
		}
		else{
			// Cogemos el control FOTO y le pasamos la imagen sin modificar
			edFoto.setImage(img);
		}
    }
else
    alert(theApp.constant("axosGestion.dat/TXT_IMG_NO_IMP"));

Saludos


([N3] blavan) #3

Hola Mario,gracias por el código.
Mira estoy intentando montar un álbum familiar en la nube y me encontré con el problema del peso de las fotos.
Por lo que veo debes tener experiencia en le tratamiento de imágenes, por favor a que medidas debo reducir las fotos para bajar su peso.

Otra pregunta
parametrizacion.load( “EMP”, [theApp.globalVarToString(“axosBase.dat/EMP_ID”)]);
Esta linea de código que función tiene?

Gracias


([N4] Ramon Denuc) #4

Hola,

Por casualidad en el tiempo yo también estoy interesado en este mismo tema, lo expreso para que tengáis conocimiento de que hay más personas con este mismo “problema”

Saludos


([N1] Mario) #5

Buenos días.

La línea parametrizacion.load( “EMP”, [theApp.globalVarToString(“axosBase.dat/EMP_ID”)]); se utiliza para cargar un registro donde se almacena el tamaño del ancho parametrizado al que se va a guardar la imagen. Lo resumo para que quede más claro:

//Importamos la clase para su uso
importClass("VImage");
//Guardamos la senda del fichero a añadir
var senda = theMainWindow.fileDialogGetOpenFileName( theApp.constant( "axosGestion.dat/TXT_SEL_IMG_IMP"), "", "*.jpg;*.png");
//Creamos la imagen
var img = new VImage();
if ( img.load(senda) )
    {
		//Capturamos el campo imagen
		var edFoto = theRoot.dataView().control("EDC_IMG");
		//Si es mayor que lo parametrizado, lo escalamos
		var anchoMaximo = 600;// 600 pixeles de ancho
		if ( (img.width() > anchoMaximo) && ( anchoMaximo > 0 )){
			// Cogemos el control FOTO y le pasamos la imagen modificada
			edFoto.setImage(img.scaledToWidth(anchoMaximo, 0));
		}
		else{
			// Cogemos el control FOTO y le pasamos la imagen sin modificar
			edFoto.setImage(img);
		}
    }
else
    alert(theApp.constant("axosGestion.dat/TXT_IMG_NO_IMP"));

Por otro lado, está en soporte por que en la 7.15 no funciona de forma correcta, mientras que en versión 7.14.x si.

Saludos


([N3] blavan) #6

Gracias Mario, deduzco que un ancho correcto es 600
Pero a esperar a la revisión de la 7.15 ¿no?


([N3] GSI) #7

Deduzco que en la 7.15.0 no funciona, o que quieres decir exactamente con que no funciona de forma correcta. Podrías aclararlo un poco mas. Gracias.