Робота з jpeg-зображеннями в delphi, графіка в delphi, статті, програмування - програмування

Мене дуже часто запитують як можна вставити зображення в форматі Jpeg в виконуваний модуль або як можна переглядати jpeg-зображення в програмі. У цій статті я спробую розповісти і показати на прикладах як можна працювати з jpeg-зображеннями.

Для цих цілей в Дельфи передбачено два класи TJpegImage і TJpegData. Ми будемо використовувати перший, він описаний в модулі JPEG (його треба підключити в uses).

Обробник події OnClick для першої кнопки може мати такий вигляд:

procedure TForm1.Button1Click (Sender: TObject);
begin
if opendialog1.execute then
image1.Picture.LoadFromFile (opendialog1.filename);
end;

До речі не забудьте налаштувати фільтр для OpenDialog1, щоб можна було відкривати тільки картинки в форматі * .bmp.

Тепер безпосередньо займемося написанням основної частини програми, тобто створення jpeg-зображення. Всі дії будемо проводити по кліку на другий кнопці. Нам необхідно буде створити об'єкт типу TJpegImage, провести з ним необхідні дії, а потім за допомогою методу Compress, упакувати зображення і залишається тільки зберегти зображення в файл. Ще необхідно налаштувати властивості TrackBar'a: властивість Max треба зробити рівним 100 і властивість Position рівним також 100. Отже, обробник натискання на другу кнопку може бути таким:

Як ви бачите все дуже просто! Про всяк випадок приведу повний код програми:

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ExtCtrls, StdCtrls, JPEG;

type
TForm1 = class (TForm)
Button1: TButton;
Button2: TButton;
Image1: TImage;
TrackBar1: TTrackBar;
OpenDialog1: TOpenDialog;
CheckBox1: TCheckBox;
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
private

public

end;

var
Form1: TForm1;

procedure TForm1.Button1Click (Sender: TObject);
begin
if opendialog1.execute then
image1.Picture.LoadFromFile (opendialog1.filename);
end;

Для зворотного перетворення з Jpg в Bmp необхідно скористатися методом DibNeeded.

Схожі статті