Imagenes como mapas...

User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Imagenes como mapas...

Post by cuatecatl82 »

Maestro Antonio:

Simplemente espectacular, es un ejemplo 100% funcional, practico y sobre todo muy sencillo, sin tanta complicación..
Mis Respetos Maestro...
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Imagenes como mapas...

Post by Antonio Linares »

Raymundo,

Aqui tienes un ejemplo usando JPGs. Hay que tener cuidado pues al salvar una imagen JPG modificada, los colores uniformes que hayamos usado pueden ser cambiados por el programa de dibujo. En este caso pasa eso, pero sirve de ejemplo.

En vez de TBitmap ahora usamos objetos TImage y la libreria FreeImage.dll.

olga1.jpg
Image

olga2.jpg
Image

Podeis descargar el PRG, RC y JPGs desde aqui:
http://www.fivetechsoft.com/files/utili ... stmap2.zip
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Imagenes como mapas...

Post by Antonio Linares »

Copio aqui el codigo fuente para JPGs:

TestMap2.prg

Code: Select all

#include "FiveWin.ch" 

function Main() 

   local oDlg, oHand, oBmp1

   DEFINE CURSOR oHand HAND

   DEFINE DIALOG oDlg RESOURCE "Test" 

   REDEFINE IMAGE oBmp1 ID 110 OF oDlg FILENAME "olga1.jpg"

   oBmp1:oCursor = oHand
   
   oBmp1:bLClicked = { | nRow, nCol | MsgInfo( GetArea( GetColor( nRow, nCol, oDlg ) ) ) }

   ACTIVATE DIALOG oDlg CENTERED 

return nil 

function GetColor( nRow, nCol, oDlg )

   local hDC  := CreateCompatibleDC( oDlg:GetDC() )
   local oImg := TImage()
   local dummy := oImg:LoadImage( , "olga2.jpg" )
   local hBmp  := oImg:hBitmap
   local hOldBmp   := SelectObject( hDC, hBmp )
   local nRGBColor := GetPixel( hDC, nCol, nRow )   

   SelectObject( hDC, hOldBmp )
   DeleteObject( hBmp )
   DeleteDC( hDC )
   oDlg:ReleaseDC()
   
return nRGBColor

function GetArea( nRGBColor )

   do case 
      case nRGBColor == 5091363
           return "Nariz"
           
      case nRGBColor == 2366445
           return "Ojos"  
           
      case nRGBColor == 2523134
           return "Boca"     
           
      case nRGBColor == 10832034
           return "Oido"     

      otherwise
           return Str( nRGBColor ) + ", no definido aun en la funcion GetArea()"       
      
   endcase
   
return nil      
TestMap2.rc

Code: Select all

test DIALOG 17, 36, 235, 260 
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU 
CAPTION "TestMap" 
FONT 8, "MS Sans Serif" 
{ 
  CONTROL "", 110, "TImage", WS_CHILD | WS_VISIBLE, 0, 0, 235, 300
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
mmercado
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Imagenes como mapas...

Post by mmercado »

Rossine wrote:Mudei ele um pouco para mostar o texto e cor da area apontada:
Antonio, Rossine:

Alguna idea para usar ToolTips usando el block OnMouseMove (bMMove) igual que en el link que muestra como ejemplo Saloh, lo estuve intentando sin éxito.

Saludos.

Manuel Mercado.
manuelmercado at prodigy dot net dot mx
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Imagenes como mapas...

Post by Raymundo Islas M. »

Muchas gracias Master,

Hare mis pruebas considerando lo que comentas.


Saludos
FWH 10.6 + xHarbour + Borland 582
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Imagenes como mapas...

Post by hmpaquito »

mmercado wrote:
Rossine wrote:Mudei ele um pouco para mostar o texto e cor da area apontada:
Antonio, Rossine:

Alguna idea para usar ToolTips usando el block OnMouseMove (bMMove) igual que en el link que muestra como ejemplo Saloh, lo estuve intentando sin éxito.

Saludos.

Manuel Mercado.
Y no tendran Vds. alguna idea de como dibujar el contorno o bien cambiar el color del area sobre la que esta el mouse ?
La idea de dibujar el contorno del area me parece mejor

Saludos
Post Reply