PDA

Ver la Versión Completa : Editar Imagen con Streach


soloriv
20-04-2006, 17:41:18
Hola amigos Foreros
Tengo un componente image en el que uso los eventos onmouse.. para editar lineas en el mismo pero me veo obligado a usar la imagen en su tamaño original. Lo que hago son :lineas, texto y otros pero necesito que la imagen tenga la propiedad streach activa para una mejor visualizacion en el tamaño del componente pero las coordenadas de la imagen parecen que se recalculan y no salen bien ubicadas en la posicion que les indico con las var: x,y ; que tienen los eventos onmouse para coordenadas al activar el streach.
Si alguien me puede ayudar para editar imagenes con streach activo muy agradecido.
Saludos y Gracias Soloriv.

seoane
20-04-2006, 18:22:14
Para pasar de las coordenadas del evento del raton a las de la imagen puedes usar algo como esto:


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;


Es una solucion, otra es cambiar el tamaño de la imagen por codigo en vez de usar la propiedad strech. Esto tiene el inconveniente de que si la imagen luego se quiere guardar, se guardara con el tamaño cambiado. Usa la que mas te convenga.


procedure Estrechame(Imagen: TImage);
var
Bitmap: TBitmap;
begin
Bitmap:= TBitmap.Create;
try
Bitmap.Width:= Imagen.Width;
Bitmap.Height:= Imagen.Height;
Bitmap.Canvas.StretchDraw(Bitmap.Canvas.ClipRect,Imagen.Picture.Graphic);
Imagen.Picture.Assign(Bitmap);
finally
Bitmap.Free;
end;
end;

soloriv
24-04-2006, 17:40:17
Hola amigos Foreros.
Gracias por contestar la solucion que adopte es la de las funciones que proponia soane y salio tal como lo queria.
Saludos Soloriv.