PDA

Ver la Versión Completa : stretch y la propiedad pixels


delphiladero
24-04-2007, 12:34:28
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í:

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