Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВКР Красковой Н.И.doc
Скачиваний:
18
Добавлен:
05.11.2018
Размер:
1.07 Mб
Скачать

2.2.2. Форма преобразования изображений

Рис.10. Форма преобразования. Отображение указанного изображения

Форма преобразования изображений визуально разделена на две части. В левой стороне скомпонованы:

  • две рабочие кнопки («Преобразование» и «Сохранить»)

  • группа – выбор «Тип интерполяции» (между билинейной и бикубической)

  • группа – выбор расширения изображения (.jpg, . giv, .png, .bmp)

  • группа – изменение данных исходного разрешения и опция сохранения пропорций изображения

  • группа – отображение данных исходного разрешения изображения.

В правой части отображается изображение, которое преобразовывается. Для этого использован компонент Image (рисунок) для отображения изображений.

Кнопка «Преобразование»

Фрагмент кода:

procedure TForm3.Button1Click(Sender: TObject);

var

bm,bm1: TBitmap;

path,ext: string;

i,width,height,new_width,new_height: integer;

dx,dy: single;

begin

//билинейная

0: bm:=interpolate(bm, new_width/width,new_height/height);

//бикубическая

1: begin

bm1.Width:=new_width;

bm1.Height:=new_height;

//растягивание изображения

Unit4.deletescansrect(bm,bm1,bm.Canvas.ClipRect,bm1.Canvas.ClipRect);

//обработка бикубическим алгоритмом

bm:=Bicubic(bm1);

end;

end;

image1.Picture.Assign(bm);

label5.Caption:= inttostr(image1.picture.width);

label6.Caption:= inttostr(image1.picture.Height);

end;

end;

end;

end;

Рис.11. Кнопка «Преобразовать»

Свойство этой кнопки – преобразовывать выделенное изображение по одному из алгоритмов повышения разрешения: билинейной или бикубичекой интерполяции.

Кнопка «Сохранить»

Фрагмент кода:

begin

if savepicturedialog1.Execute then

begin

bitmap:=image1.Picture.Bitmap;

//выбор типа сохранения

case RadioGroup1.ItemIndex of

//jpg

0: begin

SaveBitmapToJPG(bitmap,savepictureDialog1.FileName+'.jpg');

end;

//gif

1: begin

SaveBitmapToGif(bitmap,savepictureDialog1.FileName+'.gif');

end;

//png

2: begin

SaveBitmapToPNG(bitmap,savepictureDialog1.FileName+'.png');

end;

//bmp

3: begin

image1.Picture.SaveToFile(savepictureDialog1.FileName+'.bmp');

Рис.12. Кнопка «Сохранить»

Кнопка «Сохранить» сохраняет измененные параметры по указанному пути.

При сохранении преобразованного изображения, можно выбрать с каким расширением его сохранить.

//выбор типа сохранения

case RadioGroup1.ItemIndex of

//jpg

0: begin

SaveBitmapToJPG(bitmap,savepictureDialog1.FileName+'.jpg');

end;

//gif

1: begin

SaveBitmapToGif(bitmap,savepictureDialog1.FileName+'.gif');

end;

//png

2: begin

SaveBitmapToPNG(bitmap,savepictureDialog1.FileName+'.png');

end;

//bmp

3: begin

image1.Picture.SaveToFile(savepictureDialog1.FileName+'.bmp');

end;

Фрагмент кода выбора типа интерполяции:

//выбор типа интерполяции

case RadioGroup2.ItemIndex of

//билинейная

0: bm:=interpolate(bm, new_width/width,new_height/height);

//бикубическая

1: begin

bm1.Width:=new_width;

bm1.Height:=new_height;

Выполняется выбор типа интерполяции, с помощью RadioGroup - группы зависимых переключателей. Он содержит специальные свойства для обслуживания нескольких связанных между собой зависимых переключателей.