¿Cómo programar en Delphi para cambiar el tamaño de una imagen, como por ejemplo reducción proporcional, hay algún control o función?
Objetivo del supuesto: reducir el largo y el ancho de la imagen en Imagen1 a la mitad y luego colocarlo en Imagen2
Método n.° 1: usar la propiedad Image.Stretch
Imagen2.Estiramiento:= Verdadero;
Imagen2.Ancho:= Imagen1.Ancho div 2;
Imagen2.Alto:= Imagen1.Ancho div 2;
Image2.Picture.Assign( Image1.Picture );
Método #2: Llamar a la API de Windows - StretchBlt
Image2.Width:= Image1.Width div 2; p>
Imagen2.Alto:= Imagen1.Ancho div 2;
StretchBlt(
Imagen2.Canvas.Handle,
0, 0, Imagen2 .Ancho , Imagen2.Alto,
Imagen1.Canvas.Handle,
0, 0, Imagen1.Ancho, Imagen1.Alto,
SRCCOPY
);
Si necesita guardar la imagen modificada, simplemente use Image2.Picture.SaveToFile.
Comentarios: El primer método es simple y el segundo método es poderoso. Puede ubicar con precisión dónde colocar la imagen original en la imagen de destino, en lugar de un rectángulo fijo desde la esquina superior izquierda hasta la inferior. esquina derecha También puede El método de dibujo está determinado por el último parámetro. Para conocer las funciones de varios métodos, consulte MSDN.