Повышение разрешающей способности изображений
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
то рынок графических приложений еще не окончательно поделен компаниями-монополистами и на нем по-прежнему хватает места для энтузиастов-одиночек.
Выводы к главе 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;
//установка заголвока.