Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   stretch y la propiedad pixels (https://www.clubdelphi.com/foros/showthread.php?t=42839)

delphiladero 24-04-2007 12:34:28

stretch y la propiedad pixels
 
Pequeño problema, tengo una imagen que es un mapa de España, detecto en que provincia ha pinchado el usuario por el color de la provincia (cada provincia tiene un color), en el onmiusedown de la imagen propiedad image.canvas.pixels[x,y], hasta ahí todo bien.

El cliente quiere que la imagen sea remidensionable, no problem, stretch:=true, pero ......

..... ya no funciona la deteccion, he probado con trasladar las coordenadas, pero no soy capaz de pillar la transformación que hace.

Y ya aprovecho, ¿ hay una forma más elegante para identificar una región ?, ya se que podría definirme regiones, y detectar la pulsacion dentro, pero es un autentico "tedio" hacerlo con cada una de las provincias.

Gracias.

seoane 24-04-2007 13:30:06

Prueba con algo así:
Código Delphi [-]
function RatonAImagenX(Imagen: TImage; x: integer): integer;
begin
  Result:= (x * Imagen.Picture.Width) div Imagen.Width;
end;

function RatonAImagenY(Imagen: TImage; y: integer): integer;
begin
  Result:= (y * Imagen.Picture.Height) div Imagen.Height;
end;

// Por ejemplo, en el evento OnMouseDown
Color:= Image1.Canvas.Pixels[RatonAImagenX(Image1,X), RatonAImagenY(Image1,Y)];

delphiladero 24-04-2007 13:45:05

En dos palabras IM PREZIONANTE

Funciona de maravilla

Muchas gracias


La franja horaria es GMT +2. Ahora son las 23:54:06.

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