Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2008
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Thumbs down Cómo mostrar imagenes irregulares?

Hola amigos,

Soy novato para el manejo de gráficos en Delphi. Quisiera que me orientaran sobre cómo mostrar imágnes irregulares, en tiempo de ejecución, llamadas todas ellas mediante botones (que he colocado en la parte inferior de la pantalla). El efecto que busco es como armar un rompecabezas de piezas irregulares, donde las piezas las vas colocando sin una secuencia y al final muestra la figura completa. También les agradeceré me recomienden el formato de imagen más adecuado para que el programita no pese mucho.
Responder Con Cita
  #2  
Antiguo 24-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En principio, un TImage con la propiedad Transparent en True, strecht a true, Autosize en false. Con eso ya tienes las piezas.

El moverlas, podría ser por botones (cambiando el top y left de cada imagen) o arrastrar y soltar.

El formato de imagen pues JPEG, tienes que añadir el "uses jpg" para poder usar ese formato.

¿te sirve?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 24-11-2008
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Algo para mirar que puede ayudarte con el tema de arrastrar y soltar.

http://www.delphiforfun.org/programs...gImageDemo.htm
Responder Con Cita
  #4  
Antiguo 24-11-2008
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Gracias por las sugerencias. Las pondré en práctica ya y comento que pasa.

Saludos.
Responder Con Cita
  #5  
Antiguo 25-11-2008
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
En principio, un TImage con la propiedad Transparent en True, strecht a true, Autosize en false. Con eso ya tienes las piezas.

El moverlas, podría ser por botones (cambiando el top y left de cada imagen) o arrastrar y soltar.

El formato de imagen pues JPEG, tienes que añadir el "uses jpg" para poder usar ese formato.

¿te sirve?

Saludos
Hola, hola, FireBird:

Disculpas, creo que no me expliqué bien. Trato de armar algo parecido a un rompecabezas, en el que las piezas tienen formas no definidas (una parte es hembra y la otra macho, para ensamblarse), vamos como si se tratase de la división política de un país: Texas, California, Miami, etc. Las imágenes las tengo por ahora en formato GIF, rodeadas de una zona que debe ser transparente y no ocultar la imagen que quedase abajo, sino acoplarse a ella.

Gracias.
Responder Con Cita
  #6  
Antiguo 25-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Te he entendido bien.

La idea es usar un TImage que será transparente, la imagen por tanto debe tener un color de fondo que después puede obligarse a ocultar. El resultado que ves en pantalla es sólo la imagen irregular. ¿se llega a ver el borde cuadrado del Timage?

Ese es el método fácil.

El método algo más complejo y laborioso, es crear una ventana irregular, es decir, en tiempo de diseño creas una ventana te tamaño de la pieza y ahora con las propiedades de la ventana:
-Color := clRed
- TransparentColor := clRed
- Transparent := true
pones un Timage con la imagen cargada de la pieza.

Cuando muestres esa ventana, será igual que el windows Media Player o esos reproductores de mp3 tan chulos con agujeros y demás. Pero esto tiene un fallo, si la imagen de la pieza tiene un color rojo puro, se creará un hueco en ese sitio.

Como estás haciendo un puzzle y es más que probable que uses todos los colores, no te recomiendo esta opción.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 26-11-2008
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Hola Lepe,

Sigo tratando de mostrar la imágenes de manera que se vaya formano la imagen final, pero lo que no logro hacer es que el color que rodea a las imágenes irregulares se transparente. Siempre se ve el color que las rodea, en este caso ya he probado con distintos colores como fondo y nada. Las imágenes son JPG, y al colocar una sobre la otra desaparece la que queda abajo.

Es más, probé iniciar el programita con una de las imágenes, activando Transparent en el TImage, y tampoco logro la transparencia. Seguramente algo estoy haciendo mal, usé Delphi 4, 5 y 7 y en ninguno logro la transparencia.

Heeeelp!!!

Saludos.
Responder Con Cita
  #8  
Antiguo 26-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
He hecho pruebas con delphi 7 y con jpeg es cierto que no va las transparencias. Quizás usando un componente de terceros.

Aquí he hecho una prueba con bmp y si funciona correctamente, de hecho el color de fondo de cada pieza es distinta y funciona bien con el Transparent en cada imagen.

Si no recuerdo mal Delphi coge el pixel (0,0) de la imagen y después aplica la transparencia a ese color en todo el Timage.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip puzzle.zip (15,8 KB, 25 visitas)
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 26-11-2008
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Gracias Lepe,

Efectivamente, con imágenes BMP no hay problema, hasta el Delphi 4 funciona bien. Sin embargo no funciona con las JPG. Probablemente requiere alguna variante de los formatos JPG, no obstante los manuales dicen que basta con incluir en uses la unidad "Jpeg", pero no funciona. Tambien dicen que el componente TImage hace la transparencia sobre el color que tiene el último pixel de abajo a la izquierda de la imagen involucrada.

Creo que no habrá más que usar imágenes BMP.

Ahora mi problema se reduce a que permanezca la imagen anterior al sobreponerle una nueva. Desafortunadamente estoy comenzando a manejar gráficos en Delphi y no sé muchos de los trucos, propiedades y valores de éstos.

Te agradezco mucho el apoyo que me haz dado. Saludos
Responder Con Cita
  #10  
Antiguo 26-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Softhem Ver Mensaje
no obstante los manuales dicen que basta con incluir en uses la unidad "Jpeg", pero no funciona. Tambien dicen que el componente TImage hace la transparencia sobre el color que tiene el último pixel de abajo a la izquierda de la imagen involucrada.

Creo que no habrá más que usar imágenes BMP.

Ahora mi problema se reduce a que permanezca la imagen anterior al sobreponerle una nueva. Desafortunadamente estoy comenzando a manejar gráficos en Delphi y no sé muchos de los trucos, propiedades y valores de éstos.
Pues entonces debo decir que con JPG también funciona la transparencia, eso del último pixel me pasó algo extraño.

Al menos en Delphi 7 si fue añadir el uses jpeg y listo. después cargué la imagen sin problemas, eso sí, desde el IDE, no sé en ejecución como irá, pero debería ser igual.


Si abres las dos imágenes, verás que están de color azul y rojo el fondo, pues bien, con el paint estuve cambiando de color rojo el fondo con la utilidad aerógrafo sólo una parte de la foto, y ya en delphi, en JPG me hizo la transparencia a esa parte que tenía en rojo. Quizás tu último pixel es de otro color o tonalidad... no lo sé.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 28-11-2008
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Hola Lepe,

Sigo sin poder hacer transparentes mis imágenes JPG, ni en el Delphi 7. En uses pongo Jpeg pero no funciona. Ya limpié bien mis imágenes en las esquinas, ahora estoy usando fondos en color blanco... y nada. Me dices que tú no tienes problemas con Delphi 7y eso es más frustrante. También he trabajado en otra PC con el 7... sin éxito.

Con las imágenes BMP no tengo problemas, pero mis figuras pesan unas 90 veces más que las mismas en JPG y se nota un leve retardo al mostrar una a una. Esto ya se volvió un reto para mi...

Saludos.
Responder Con Cita
  #12  
Antiguo 28-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
a ver, a ver.... .que tengo instalada la biblioteca GraphicEx, que permite reconocer en delphi muchos formatos de imágenes (es gratuita), a ver si es eso .

Voy a cotillear un poco sobre el tema y te informo.

Note: Transparent has no effect unless the Picture property specifies a TBitmap object.

, pos probando otra cosa.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 28-11-2008 a las 17:13:58.
Responder Con Cita
  #13  
Antiguo 28-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
El problema añadido del JPG es que obviamente comprime los colores y el fondo no es realmente Rojo, puede variar algunas tonalidades.

Solución: cambiar de formato. Como te decía he usado GraphicEx (tan sencillo como descomprimir y colocar en una carpeta accesible por el library path de delphi e incluir el uses GraphicEx). Hecho esto ya puedes abrir los .png, que como saben son imágenes sin pérdida de la calidad. (Mi bmp ocupaba 33 kb, el png 6 kb). He usado Gimp para la conversión.

También he pintado sobre el canvas del form la imagen, ya que estando dentro de un TImage no salía el fondo, quizás con más tiempo se pueda mejorar.

La idea sería ocultar la barra de título del Form2 y los bordes, hacer que puedas arrastrar la ventana arrastrando en la imagen (busca por el foro por HTCAPTION)

Saludos.
Archivos Adjuntos
Tipo de Archivo: zip puzzle.zip (10,4 KB, 8 visitas)
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 28-11-2008 a las 18:16:41.
Responder Con Cita
  #14  
Antiguo 28-11-2008
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Gracias Lepe,

Eres muy amable en apoyarme en este reto. Haré lo que me dices y les comento. Covertiré los BMP en PNG, creo que con los JPG no se logrará la transparencia a menos que se incluyan en el Delphi componentes de terceros

Saludos.
Responder Con Cita
  #15  
Antiguo 29-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
usa irfanview te aliviará el proceso por lotes, marcas todos los archivos y le dices convertir... listo .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #16  
Antiguo 15-01-2009
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Hola Softhem, no se si seguis interesado en el tema, si es asi, lo que necesitas es uno de los componentes que desarrollo nuestro compañero Fede (delphi.com.ar).

El componente se llama TImageTransp. Estaba disponible en su pagina web, pero por lo visto esta caida. Si no lo puedes encontrar a dicho componente, te lo busco y lo subo aqui.
__________________
[Crandel]
Responder Con Cita
  #17  
Antiguo 19-01-2009
Avatar de Softhem
Softhem Softhem is offline
Registrado
 
Registrado: feb 2007
Posts: 8
Poder: 0
Softhem Va por buen camino
Cita:
Empezado por Crandel Ver Mensaje
Hola Softhem, no se si seguis interesado en el tema, si es asi, lo que necesitas es uno de los componentes que desarrollo nuestro compañero Fede (delphi.com.ar).

El componente se llama TImageTransp. Estaba disponible en su pagina web, pero por lo visto esta caida. Si no lo puedes encontrar a dicho componente, te lo busco y lo subo aqui.
Gracias por tu respuesta. Sí sigo interesado en el tema. Me gustaría optimizar el proyecto que estoy realizando. Espero más información sobre el componente que mencionas.
Responder Con Cita
  #18  
Antiguo 06-02-2009
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Crandel Ver Mensaje
Hola Softhem, no se si seguis interesado en el tema, si es asi, lo que necesitas es uno de los componentes que desarrollo nuestro compañero Fede (delphi.com.ar).

El componente se llama TImageTransp. Estaba disponible en su pagina web, pero por lo visto esta caida. Si no lo puedes encontrar a dicho componente, te lo busco y lo subo aqui.
¿Alguien tiene el código de mi componente?... porque ni lo recuerdo!!

Lo que sucede si utilizamos ventanas irregulares, es que el dibujado de estas es mucho mas costoso, ya que no entra dentro de la lógica de overlapping de rectángulos. Un posibilidad concreta, es utilzar imágenes con transparencias, por ejemplo: GIF o PNG. Recomiendo las segundas, ya que tienen un canal Alpha y permiten un degradado mas suave.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #19  
Antiguo 06-02-2009
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Cita:
Empezado por delphi.com.ar Ver Mensaje
¿Alguien tiene el código de mi componente?... porque ni lo recuerdo!!

Lo que sucede si utilizamos ventanas irregulares, es que el dibujado de estas es mucho mas costoso, ya que no entra dentro de la lógica de overlapping de rectángulos. Un posibilidad concreta, es utilzar imágenes con transparencias, por ejemplo: GIF o PNG. Recomiendo las segundas, ya que tienen un canal Alpha y permiten un degradado mas suave.

Saludos!
Yo lo tengo

aca lo subo, por si lo necesitas, para que veas que bueno soy con vos compartiendo tus cosas

Tal como comentas el dibujado es mucho mas costoso y tiene algunos problemas en la parte del refresco. Principalmente tuve problemas al usar un programa en que utilizaba este componente a traves del "Remote desktop" de windows, al prorgama le costaba muchisimo refrescar las imagenes.

El problema de usar imagenes con trasparencias es que cuando haces click sobre una parte en el que es trasparente igualmente el componente recibe el evento del click y no lo hace la imagen que esta por debajo. Tu componente si lo resuelve.
Archivos Adjuntos
Tipo de Archivo: zip ImageTransp.zip (1,7 KB, 12 visitas)
__________________
[Crandel]
Responder Con Cita
  #20  
Antiguo 06-02-2009
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Crandel Ver Mensaje
El problema de usar imagenes con trasparencias es que cuando haces click sobre una parte en el que es trasparente igualmente el componente recibe el evento del click y no lo hace la imagen que esta por debajo. Tu componente si lo resuelve.
Tienes razón, salvo que tambien te dediques a implementar esa lógica, y descartar los eventos de mouse que esten sobre areas transaparentes.


PD: Si es mi letra!.. ese componente lo hice yo, pero lo perdí en el olvido
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mostrar imagenes en club delphi Elite237 Varios 3 14-11-2008 02:01:53
Insertar y mostrar imagenes jocey Varios 4 05-09-2008 15:28:18
Como mostrar imágenes?? Io PHP 2 25-01-2008 15:52:16
mostrar imágenes por medio de un link halizia PHP 10 13-03-2007 13:25:31
mostrar varias imagenes JoseQ Impresión 0 12-08-2004 13:23:29


La franja horaria es GMT +2. Ahora son las 06:22:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi