Внешний вид сайта:

Изменение размера загружаемого изображения

В этой статье рассматривается, как изменить изображение, которое будет загружено из файла и вывести его на холст. Будем пользоваться процедурой StretchDraw.

StretchDraw требуется два параметра. Первый параметр – прямоугольник, в который будет выводиться изображение. Если прямоугольник имеет другие размеры, чем у выводимого изображения, его размеры будут изменены. Но это может привести к искажению изображения. Во втором параметре передается само растровое изображение.

В следующем примере, пользователь выбирает загружаемое изображение в диалоговом окне и помещает его на форму в размере, в два раза меньше оригинального.

procedure TForm1.Button1Click(Sender: TObject);
var
 Bmp: TBitmap;
begin
if OpenDialog1.Execute then
begin
    Bmp:= TBitmap.Create;
    try
      Bmp.LoadFromFile(OpenDialog1.Filename);
      Self.Canvas.StretchDraw(Rect(0,
                                   0,
                                   Bmp.Width div 2,
                                   Bmp.Height div 2),
                              Bmp);
    finally
      Bmp.Free;
    end;
end;
end;

Если изображение будет значительно увеличено по сравнению с оригиналом, качество изображения будет ухудшаться. Чтобы избежать этого эффекта, можно использовать алгоритм растяжения изображения. Этот алгоритм можно найти, например, в графической библиотеке GraphicEx.

Комментарии

Нет комментариев. Ваш будет первым!