Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Editar Imagen con Streach (https://www.clubdelphi.com/foros/showthread.php?t=30854)

soloriv 20-04-2006 17:41:18

Editar Imagen con Streach
 
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:

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;

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.

Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 14:54:57.

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