Изменение размера изображений в Delphi: подробное руководство по различным методам

В сегодняшней записи блога мы рассмотрим различные методы изменения размера изображений с помощью Delphi, популярного языка программирования. Независимо от того, создаете ли вы приложение для редактирования фотографий, работаете над веб-проектом или просто хотите изменить размер изображений для различных целей, это руководство предоставит вам практические примеры кода и объяснения. Итак, приступим!

Метод 1: использование TImage и свойства Stretch
Компонент TImage в Delphi предоставляет удобный способ загрузки и отображения изображений. Чтобы изменить размер изображения с помощью этого метода, просто установите для свойства Stretch значение True и соответствующим образом настройте свойства Width и Height. Вот пример:

Image1.Stretch := True;
Image1.Width := NewWidth;
Image1.Height := NewHeight;

Этот метод быстрый и простой, но имейте в виду, что он может привести к искажению изображений, если не соблюдать соотношение сторон.

Метод 2: использование библиотеки Graphics32
Graphics32 — это мощная графическая библиотека для Delphi, предлагающая широкие возможности манипулирования изображениями. Чтобы изменить размер изображения с помощью этой библиотеки, вы можете использовать класс TBitmap32 и его свойство Resampler. Вот фрагмент кода для демонстрации:

var
  Bitmap32: TBitmap32;
begin
  Bitmap32 := TBitmap32.Create;
  try
    Bitmap32.LoadFromFile('input.jpg');
    Bitmap32.Resampler := TNearestResampler.Create;
    Bitmap32.Resize(NewWidth, NewHeight);
    Bitmap32.SaveToFile('output.jpg');
  finally
    Bitmap32.Free;
  end;
end;

Этот метод обеспечивает больший контроль над процессом изменения размера и позволяет выбирать из различных алгоритмов повторной выборки.

Метод 3: использование Graphics32 и функции ProportionalResize
Другой подход к Graphics32 заключается в использовании функции ProportionalResize, которая автоматически регулирует размеры изображения, сохраняя при этом исходное соотношение сторон. Вот пример:

var
  Bitmap32: TBitmap32;
begin
  Bitmap32 := TBitmap32.Create;
  try
    Bitmap32.LoadFromFile('input.jpg');
    Bitmap32.Assign(Bitmap32.ProportionalResize(NewWidth, NewHeight));
    Bitmap32.SaveToFile('output.jpg');
  finally
    Bitmap32.Free;
  end;
end;

Этот метод гарантирует, что изображение с измененным размером сохранит свои пропорции, избегая искажений.

Метод 4: использование библиотеки ImageEn
ImageEn — это комплексная библиотека изображений для Delphi, которая предлагает широкий спектр функций обработки изображений, включая изменение размера изображения. Вот пример изменения размера изображения с помощью ImageEn:

var
  ImageEnView1: TImageEnView;
begin
  ImageEnView1.IO.LoadFromFile('input.jpg');
  ImageEnView1.IO.Resize(NewWidth, NewHeight, rfLanczos3);
  ImageEnView1.IO.SaveToFile('output.jpg');
end;

Этот метод предоставляет расширенные возможности изменения размера, например выбор различных фильтров передискретизации.

В этой статье мы рассмотрели несколько методов изменения размера изображений в Delphi. Мы рассмотрели методы с использованием компонента TImage, библиотеки Graphics32 и библиотеки ImageEn, каждая из которых предлагает разные уровни контроля и гибкости. В зависимости от ваших конкретных требований вы можете выбрать наиболее подходящий метод для вашего проекта Delphi. Изменение размера изображений в Delphi еще никогда не было таким простым!