Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

¿Herramientas freeware buenas zoom...en imágenes?

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: ¿Herramientas freeware buenas zoom...en imágenes? Responder citando

¿Alguien sabe de alguna herramienta FREEWARE buena para el tratamiento de imágenes?Para hacer operaciones como Zoom(sobre todo)....
Gracias a todos!
Volver arriba
Mensaje    Asunto: Zoom Responder citando

Hola de nuevo!!!!
He estado buscando por el foro y lo que necesito es parecido al problema q planteó Guido en Febrero del 2002 y q quedó sin solución. Exactamente dibujo sobre el Canvas con LineTo, MoveTo,...y necesito q al hacer zoom se me amplíe tb lo dibujado...
¿Es muy complicado?Lo ha hecho alguien? Hay alguna herramienta freeware q lo facilite?
Volver arriba
Mensaje    Asunto: Responder citando

A propósito, he trabajado con una herramienta Shareware llamada
ImageEn de Hicomponents q incorpora muchas facilidades de cara a tratamiento de imágenes pero necesito alguna herramienta libre o alguien q haya hecho algo parecido:
zoom sobre la imagen y sobre lo q dibujo sobre el canvas con moveto, lineto...
HELP!!!! Sad
Volver arriba
Mensaje    Asunto: Responder citando

Hola, yo estuve usando la siguiente técnica. El dibujo lo hacía en un TImage, llamado Imagen, y el dibujo lo hacíá mediante la función DibujaGrafo(). En la imagen tenía un menú emergente con la opción Zoom y el siguiente código:
Código:
void TFImagen::ZoomIn(void)
{
Imagen->Canvas->Brush->Color = Grafo.clFondo;
Imagen->Canvas->Rectangle(0,0,Imagen->Width,Imagen->Height);
ZoomActual=ZoomActual*1.2;
DibujaGrafo();
SB_Imagen->Panels->Items[2]->Text = "Zoom: " + IntToStr((int)(ZoomActual*100)) + "%";
}

(En ZoomOut() sólo hay que cambiar *1.2 por /1.2, aquí se aumenta o disminuye un 20% la imagen).

Luego para "redibujar" la línea que va de (x,y) a (X,Y), en la función DibujaGrafo() hallaba las nuevas coordenadas con
Código:
      Xi = x*ZoomActual;
      Yi = y*ZoomActual;
      Xf = X*ZoomActual;
      Yf = Y*ZoomActual;


Creo recordar que era importante que la propiedad Stretch de Imagen debía estar a true para poder cambiar las dimensiones de la imagen.

Suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Enrique, perdona pero no entiendo muy bien lo q haces, modificando los valores de x e y de las lineas no tienes un zoom de la imagen y de lo dibujado sobre el canvas, ¿no?
Perdona pero es q no termino de entender lo q haces...
Alguien más ha trabajado pudiendo hacer un zoom sobre la imagen y sobre el canvas?
Otra pregunta, al hacer le zoom, las coordenadas q te devuelve onmousemove no se actualizan con respecto a la nueva imagen ¿no?
Gracias Enrique y a todo aquel q pueda ayudarme....
HELP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Volver arriba
Mensaje    Asunto: Responder citando

A propósito, con un componente Shareware q estoy utilizando llamado ImageEn de HiComponents bastante completo sí me acerco a lo q pido ampliando la imagen y lo dibujado en el canvas a mi gusto pero luego, cuando necesito saber en la nueva imagen ampliada en q pixel me encuentro con Onmousemove me deevuelve las coordenadas totales como si nada hubiese pasado no correspondiéndose con los pixels que son(que se encuentran ampliados)
¿Alguien sabe como solucionarlo o lo ha hecho manualmente o conoce algun otro tipo de herramientas de imagen freeware q lo facilite?
ME URGE UN MONTÓN.AYUDA POR FAVOR!!!!!!!!!!!!!!
GRACIAS
Volver arriba
Mensaje    Asunto: Responder citando

Hola.

Creo que sé por dónde vas. Yo estoy realizando un programa de cálculo de estructuras y todos los datos y resultados, además de su salida en ficheros la tenía que realizar en pantalla. Supongo que conoces el AutoCAD, o alguna aplicación de dibujo. Pues bien, yo tengo definidas las siguientes funciones con las que opero fácilmente:
- zoom más;
- zoom menos;
- zoom escala;
- zoom anterior;
- zoom siguiente;
- zoom dinámico;
- encuadre vector;
- encuadre derecha;
- encuadre izquierda;
- encuadre arriba;
- encuadre abajo;
- encuadre dinámico;
¿Cómo lo he hecho? Verás: en mi caso una estructura está definida por nudos (puntos donde empiezan y terminan los elementos como vigas, pilares, diagonales, etc) y elementos (que van de unos nudos a otros).
Lo que tienes que hacer es usar dos vectores: un vector contiene las coordenadas originales de los nudos o extremos de las líneas que quieres dibujar (en mi caso elementos estructurales). Y el otro vector contiene las coordenadas transformadas de los nudos inicales, después de cambiar de escala, encuadrar, hacer zooms, o lo que sea. Cada vez que hagas un zoom o una operación de este tipo, debes recalcular las coordenadas de los puntos del segundo vector y proceder a redibujar la pantalla. Los elementos o líneas que tienes que dibujar simplemente unen los puntos del segundo vector.
Estos dos vectores son arrays de Puntos, siendo un Punto una clase donde se almacenan las tres coordenadas espaciales (X, Y, Z) y donde existen algunas funciones para su manipulación.

Un saludo.
_________________
Nunca digas "Es imposible" sin intentarlo antes.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias por la ayuda Cerúleo...me resulta un poco complicado pero lo intentaré...¿Conoce alguien alguna herramienta maja con zoom ya desarrollado q de dichas prestaciones?
Es q utilizando ImageEn de HiComponents q aporta zoom(es Shareware) ya me amplía la imagen y todo lo q haya en el canvas pero la función OnMouseMove me sigue devolviendo las coordenadas con respecto a la imagen total....
Gracias a todo el q pueda ayudarme y Cerúleo por su mensaje, si me puedes facilitar un poco más te lo agradeceré pq todavía me manejo a medias con todo ésto...
HELP!!!!! Y GRACIAS!!
Volver arriba
Mensaje    Asunto: Responder citando

Hola, y perdona que no te contestase antes. Bueno, veo que te lié más que ayudarte, no trabajas igual que yo y encima no te digo cómo trabajo yo (el código de mi función DibujaGrafo()), por lo que olvídate de mi primer mensaje.

Respecto a tu último mensaje, como no conozco ese componente no te puedo hablar de él, pero dices que te devuelve las coordenadas respecto a la imagen total ¿no? Entonces quizá puedas calcularlas a partir del valor del zoom que estés aplicando. A ver si me explico.

Tu imagen normal tiene un zoom=1.00, supongamos que aumentas un 20% la imagen, ahora zoom=1.20.

Si tienes el ratón en la coordenada (X,Y) y OnMouseMove te dice que es el punto (0,100), que según tú es de la imagen total ¿no se tratará del punto (0,120) de tu imagen ampliada?
Si es así la cosa es fácil:

Xampliada = X*zoom;
Yampliada = Y*zoom;

Ahora ya conoces los puntos reales en que está el ratón. ¿Voy en el buen camino?

Si lo que realmente has hecho es "recortar" un trozo de la imagen para hacer el zoom tendrías que tener también en cuenta la esquina superior izquierda (supongo) del recorte. Algo así como

Xampliada = Xrecortado + X*zoom;
Yampliada = Yrecortado + Y*zoom;

(Creo que las operaciones que te digo están mal, pero no conozco bien tu problema, será mejor que si la idea es buena vayas probando hasta descubrir qué operaciones entran en juego y en qué orden)

Suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Enrique por tu respuesta,te he entendido lo q me has dicho, gracias, de todas formas he encontrado con mi componente de mi ImageEn de HiComponents unas funciones q no había visto ya implementadas q se llaman XScr2Bmp, YScr2Bmp,XBmp2Scr e YBmp2Scr que me facilitan todo lo q pido, lástima q es un componente Shareware...De todas formas muchas gracias por las respuestas, voy a seguir intentando encontrar alguno free o hacerlo yo en base a vuestras respuestas.
Gracias!
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.