Ayuda con javascript


([N3] ereitmann) #1

Hola comunidad pido una ayuda con javasript, el cual no manejo y la cuestión es sencilla seguro para el que lo maneja:
el tema es que aprovechando las nuevas funcionalidades del campo objeto dibujo en un formulario quiero activar la cámara y sacar la fotografía, el tema es que esta fotografia es muy pesada y quiero con java script poder redimensionarla a un tamaño menor. Aprovecharía la conexión de evento value changed que tiene el control en mi caso el control es “Ed_Foto” para disparar el manejador de evento que es el que tiene que estar en Javascript.
He utilizado en el, pasado algún ejemplo que saque del foro para re dimensionar un dibujo pero se utilizaba la Clase VImage y se lo cargaba desde el disco, pero no se como utilizarlo para hacer referencia al control objeto dibujo.
Alguien podría pasarme un ejemplo de ese código para hacer lo que pido?

Gracias desde ya


([N3] ereitmann) #2

Alguna idea?


([N3] pacosatu) #3

Hola ereitmann.

Para obtener un objeto VImage usa la función image() de la clase VImageEdit.

VImageEdit es la clase a través de la cual podemos acceder al Control edición de Imagen de Velneo.

Saludos
Paco Satué


([N3] ereitmann) #4

bueno en realidad lo que yo pretendo no es editarla con el control de imagen si no directamente la imagen que se carga en ese control, por ejemplo con la camarita web que haora permite capturar imagenes, solamente redimensionarla en forma automatica

yo intente hacer esto pero no funciona

importClass( “VImage” );
var edFoto = theRoot.dataView().control( “ED_FOTO” );
var img = new VImage();
img.load(edFoto)
var img2 = img.scaled(128,119,0,1);
edFoto.setImage(img2);


([N3] pacosatu) #5

Hola ereitman.

¿Por qué no me haces caso?
Usa la función image().


importClass("VImage");
var edFoto = theRoot.dataView().control("ED_FOTO");
<del datetime="2015-04-27T20:08:56+00:00">// var img = new VImage();</del>

var img = edFoto.image();
<del datetime="2015-04-27T20:08:56+00:00">// img.load(edFoto)</del>
var img2 = img.scaledToWidth(100,1);
edFoto.setImage(img2);

He usado la función scaledToWidth() en lugar de scaled() para no deformar la imagen obtenida de la cámara web.

Saludos
Paco Satué


([N3] ereitmann) #6

Gracias seh, una vez mas ahora si me funciona, y no es que no haya querido hacerte caso, (ni se me ocurriría)… es que al no comprender el uso y la lógica de javascript, o el api de velneo para javascript, es que cometo esos errores ,
Es que hay muy poca referencia con casos de ejemplos para la aplicación de javascript en velneo… seria bueno que alguien con conocimientos y con pedagogía escriba un manual de ejemplos Y QUE LO VENDA!!! no importa… algo así como el libro de Pepeto HAY QUE CAMBIAR EL CHIP!!! que muchos compramos para aprender un poco mas sobre la utilizacion de velneo… Bueno yo les doy la idea y el posible titulo VOLVIENDO AL CHIP ANTERIOR…USO DEL API JAVASCRIPT EN VELNEO CASOS PRACTICOS!!!

Gracias por tu aporte


([N3] pacosatu) #7

Hola ereitman.

Era broma.
Entiendo que a veces es dificil entender el API de Velneo por la falta absoluta de buena documentación y ejemplos.
Yo vengo de la programación estructurada y de la orientada a objetos y aprender JavaScript me resultó extremadamente sencillo, incluso más sencillo que entender muchos de los encorsetados conceptos de Velneo.

Velneo se está poniendo las pilas en mejorar las herramientas de aprendizaje con vTutor y espero echarles una mano en la parte de documentación y ejemplos. No es una tarea sencilla pues se necesita de un tiempo que a veces no dispongo.

Saludos
Paco Satué


([N1] lsmsusvilla) #8

Buenas tardes seh, una vuelta de tuerca al proceso reducir imagen, el codigo JS que has puesto que funciona Ok te reduce la imagen una vez una vez incrustada en el objeto imagen, y si la imagen es muy grande y en cloud… como de podria hacer para coger la ruta y reducir la imagen antes de ser descargada e incrustada en le objeto imagen.


([N1] wikan) #9

@lsmsusvilla no puedes manipilar la imagen antes de descargarla, ya que está en el servidor remoto. Podrías reducirla antes de incrustarla eso sí.


([N1] lsmsusvilla) #10

Ok y otra preguntilla la funcion scaledToWidth(), como se interpreta el 100,1, porque por mas que cambio la relacion no se ve la diferencia. Por ejemp para reducir una imagen a la mitad que relacion habria que poner.


([N1] wikan) #11

@lsmsusvilla
El primer parámetro es el tamaño de pixeles, de ancho, al que quieras escalar la imagen.
El segundo es, 0 para transformación rápida, 1 para suave.

Si quieres reducir a la mitad, debes usar el método width() previamente para obtener el ancho de la imagen, ya solo te queda escalar a la mitad.

O en un solo paso:
var img2 = img.scaledToWidth( img.width() / 2 , 1 );


([N1] lsmsusvilla) #12

Ok muchas gracias dios mio que verde estoy en esto de java


([N1] lsmsusvilla) #13

Buenos dias una pregunta tenia puesto el siguiente codigo para reducir una imagen

importClass(“VImage”);
var edFoto = theRoot.dataView().control(“AVATAR”);
var img = edFoto.image();
var img2 = img.scaledToWidth(200,1);

edFoto.setImage(img2);

El problemas es que creo que funcionaba pero ahora lo estoy comprobando en los programas donde lo tenia implementado y no funciona en ninguno.
hay algun problema con el codigo???
Porque ha dejado de funcionar de repente???


([N1] lsmsusvilla) #14

Ok borro lo anterior si que funciona el problemas es que…
Hoy es fiesta y no debería de estar trabajando