Повышение разрешающей способности изображений

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



то рынок графических приложений еще не окончательно поделен компаниями-монополистами и на нем по-прежнему хватает места для энтузиастов-одиночек.

Выводы к главе I

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

ГЛАВА II. ПРОЕКТНАЯ ЧАСТЬ. ОПИСАНИЕ ТЕХНОЛОГИИ ВЫПОЛНЕНИЯ РАБОТЫ

.1 Выбор оптимального инструментария для разработки

В этом параграфе описываются основные использованные компоненты, их работа:

Форма поиска файлов включает компоненты:

MainMenu:TMainMenu

Рис. 2. Окно конструктора меню Form2 - формы поиска изображений

С помощью компонента MainMenu я создаю иерархическое меню. В Меню "Файл" Подменю "Открыть" открывает диалоговое окно для открытия изображений. Подменю "Выйти" закрывает форму и работа программы заканчивается. Меню "Справка" находится небольшое руководство по пользованию.

OpenPictureDialog: TOpenPictureDialog

beginOpenPictureDialog1.Execute() then

//открытие изображения через OpenFileDialog.hint:=OpenPictureDialog1.FileName;.ShowModal;;;

Компонент OpenPictureDialog вызывает диалоговое окно открытия файла. С помощью этого окна пользователь может выбрать изображения для преобразовывания из указонного пути, может установить тип файлов (их расширение).

ImageList: TImageList. Набор рисунков. Представляет собой хранилище для нескольких рисунков одинакового размера.

TreeView: TTreeView. Дерево выбора. Представляет собой совокупность связанных в древовидную структуру пиктограмм. Используется для просмотра структуры каталогов, связанных иерархическим образом.

С помощью этого компонента я провожу просмотр структуры каталогов, которые связаны иерархически.

ListView: TListView. Панель пиктограмм. Организует просмотр нескольких пиктограмм и выбор нужной. Компонент способен располагать пиктограммы в вертикальных или горизонтальных рядах и показывать их в крупном или мелком масштабе.

С помощью этого компонента устанавливаю панель, где будут отображаться миниатюры изображений.

FileListBox: TFileListBox

Форма преобразования изображений включает компоненты:

MainMenu: TMainMenu

Рис. 4. Окно конструктора меню Form3 - формы преобразования изображений

С помощью компонента MainMenu я создаю иерархическое меню. В Меню "Файл" подменю "Сохранить" открывает диалоговое окно для сохранения изображений, подменю "Печать" открывает диалоговое окно для печати, подменю "Параметры страницы" открывает диалоговое окно, которое показывает параметры страницы для печати. В меню операции есть подменю "Преобразовать", которое выполняет операцию преобразования изображений по выбранному методу интерполяции.

SavePictureDialog: TSavePictureDialog

savepicturedialog1.Execute then:=image1.Picture.Bitmap;

//выбор типа сохраненияRadioGroup1.ItemIndex of

//jpg

: begin(bitmap,savepictureDialog1.FileName+'.jpg');;

//gif

: begin(bitmap,savepictureDialog1.FileName+'.gif');;

Рис.5. Диалоговое окно сохранения изображения SavePictureDialog

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

PrintDialog: TPrintDialog

//Печать изображенияPrinter do;:=image1.Picture.Height/image1.Picture.Width;.StretchDraw(Rect(0,0,PageWidth,Round(PageWidth*koef)), Image1.Picture.Graphic);;;

Рис.6. Диалоговое окно для печати изображения PrintDialog

Компонент PrintDialog вызывает диалоговое окно печати. В нем пользователь может выбрать принтер и установить его свойства, указать число копий и последователъность их печати, печатать в файл или непосредственно на принтер.

PageSetupDialog:TPageSetupDialog

.Execute;;

Компонент PageSetupDialog вызывает диалоговое окно параметров страницы перед выводом на печать файла.

Image: TImage

Panel: TPanel

.2 Разработка логической схемы и реализация алгоритма

.2.1 Форма поиска файлов

тАж

//построение дерева вложенных папок

procedure NextLevel(ParentNode: TTreeNode);DirectoryName(name: string): boolean;:= (name > '.') and (name > '..');;, srChild: TSearchRec;: TTreeNode;: string;:= ParentNode; := '';

//построение полного пути к выбранной директории

repeat:= node.Text + '\' + path;:= node.Parent;= nil;

//поиск файловFindFirst(path + '*.*', faDirectory, sr) = 0 then

//если директории(sr.Attr and faDirectory > 0) and DirectoryName(sr.name) then

//добавляем дочерний узел:= Form2.TreeView1.Items.AddChild(ParentNode, sr.name);

//присвоение номер иконки

node.ImageIndex := 0;

//устанавливает выделение на первую ветвь

node.SelectedIndex := 1;

//отключает очерние элементы

node.HasChildren := false;

//ищет следующие папкиFindFirst(path + sr.name + '\*.*', faDirectory, srChild) = 0 then

//цикл для поиска всех вложенных

repeat(srChild.Attr and faDirectory > 0) and(srChild.name) then.HasChildren := true;

(FindNext(srChild) > 0) or node.HasChildren;;

FindClose(srChild);;(sr) > 0;.HasChildren := false;

// закрытие поиска

FindClose(sr);

end;

тАж

Рис.7. Форма поиска. Отображение структуры каталогов

В левой стороне отображается дерево вложенных папок - каталог данных.

//добавление миниатюр файлов в ListView

for i := 0 to FileListBox1.Items.Count - 1 do:=TBitmap.Create;

//открытие файла в bitmap:=ExtToBmp(path+'\'+FileListBox1.Items[i]);

//установка размеров:=ImageList2.Width/bitmap.Width;:=ImageList2.Height/bitmap.Height;

//уменьшение до миниатюры:=interpolate(bitmap,dx,dy);

//добавление нового пункта:=listview1.Items.Add;

//установка заголвока.