FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Imagenes como mapas...
Posts: 625
Joined: Wed Mar 14, 2007 06:49 PM

Re: Imagenes como mapas...

Posted: Thu Jan 15, 2009 11:29 PM

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
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Imagenes como mapas...

Posted: Fri Jan 16, 2009 02:19 AM
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


olga2.jpg


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

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Imagenes como mapas...

Posted: Fri Jan 16, 2009 02:24 AM
Copio aqui el codigo fuente para JPGs:

TestMap2.prg
#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
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
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM

Re: Imagenes como mapas...

Posted: Fri Jan 16, 2009 03:07 AM
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
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM

Re: Imagenes como mapas...

Posted: Fri Jan 16, 2009 07:12 PM

Muchas gracias Master,

Hare mis pruebas considerando lo que comentas.

Saludos

FWH 10.6 + xHarbour + Borland 582
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM

Re: Imagenes como mapas...

Posted: Tue Jan 20, 2009 04:16 PM
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

Continue the discussion