Дипломная работа

от 20 дней
от 9999 рублей

Заказать

Курсовая работа

от 10 дней
от 1999 рублей

Заказать

Реферат

от 3 дней
от 699 рублей

Заказать

Контрольная работа

от 3 дней
от 99 рублей
за задачу

Заказать

Диссертация

Сроки и стоимость индивидуальные

Заказать

Главная - Программирование - Разработка алгоритма расчета размеров изображения для его пропорционального отображения и реализация алгоритма различными методами (DLL, компонент C++ Buil

Разработка алгоритма расчета размеров изображения для его пропорционального отображения и реализация алгоритма различными методами (DLL, компонент C++ Buil Программирование. Дипломная

  • Тема: Разработка алгоритма расчета размеров изображения для его пропорционального отображения и реализация алгоритма различными методами (DLL, компонент C++ Buil
  • Автор: Сергей
  • Тип работы: Дипломная
  • Предмет: Программирование
  • Страниц: 90
  • Год сдачи: 2008
  • ВУЗ, город: МГАП (Москва)
  • Цена(руб.): 5000 рублей

Заказать персональную работу

Выдержка

Введение

На сегодняшний день в программировании наиболее популярным подходом является метод быстрой разработки приложений. Среды быстрого создания приложений или RAD-среды (Rapid Application Development RAD) такие как С++ Builder и Delphi используют библиотеки, которе состоит из готовых к употреблению визуальных и не визуальных объектов и оболочек. Они позволяют с минимальными затратами создавать приложения, в то же время предоставляя определенную степень независимости от библиотек. При работе с компонентами С++ Builder и Delphi широко используют принцип повторного использования объектов что позволяет одним разработчикам повторно использовать программный код, написанный другими разработчиками.
Существует много вариантов использования принципа повторного использования кода. Данный дипломный проект ставит перед собой цель продемонстрировать наиболее популярные из них.



1 Анализ предметной области
1.1 Постановка задачи
Данный проект имеет своей целью разработку алгоритма расчета координат и размеров области вывода растрового графического изображения относительно другой области-контейнера, содержащей в себе выводимую область и реализацию разработанного алгоритма различными способами с целью последующего его включения в приложения в виде объектов и компонентов.
Во многих приложениях, решающих различные задачи, возникает необходимость вывода растровых графических изображений в рабочие окна приложений. Простейшим примером такой необходимости может являться вывод фотографии сотрудника в форме личной карточки сотрудника программы ведения кадрового учета на предприятии или автоматизированной системы управления доступа сотрудников на территорию предприятия. На сегодняшний день стандартом хранения изображений являются форматы bmp, tiff, gif и конечно же JPEG, поддерживаемые практически всеми существующими на сегодняшний день пакетами обработки графической информации, а также аппаратными средствами, такими как цифровые фотоаппараты и т.д.
Таким образом, перед разработчиком приложения практически любой тематики наверняка встанет необходимость организации вывода в формах своего приложения растровых графических изображений всевозможных форматов.
Для разработчиков в среде Borland С++ Builder или Borland Delphi библиотека VCL предоставляет для этих целей компонент TImage. Этот компонент позволяет организовать вывод как растровых так и векторных изображений. Компонент обладает широким набором свойств и методов, позволяющих организовать практиески любую работу с выводимым изображением. Мы остановим внимание лишь на одном аспекте, связанным с выводом изображения в компонент TImage библиотеки VCL. Растровое графическое изображение характеризуется своими размерами, т.е. количеством точек по горизонтали и вертикали. Компонент TImage также имеет такие характеристики как ширина и высота, задаваемые свойствами Width и Height. Что будет происходить если размеры изображения не совпадают с размерами компонента? Изображение либо выйдет за пределы компонента либо займет не все его пространство. Для предотвращения такой ситуации компонент TImage имеет свойство Stretch, которое при установке его значения в True «растягивает» изображение на всю область вывода компонента. Однако если отношение ширины к высоте области вывода компонента не совпадает с отношением ширины к высоте исходного изображения то, выведенное изображение будет искажено в результате изменения его пропорций. Например, если ширина области вывода компонента TImage к его высоте составляет 3:4, а отношение ширины к высоте исходного изображения составляет 2:5 то при выводе такого изображения в компонент TImage при установленном в True свойстве Stretch мы получим сильно искаженное в пропорциях изображение.
Данный дипломный проект ставит перед собой задачу решить описанную проблему вывода графического изображения в прямоугольную область так, чтобы пропорции исходного изображения не были нарушены и изображение не было искажено.
В ряде случаев данная проблема может не иметь места в виду стандартизации размеров исходных изображений и размеров компонентов форм приложений, в которые эти изображения будут выводиться. В выше приведенном примере автоматизированной информационной системы управления доступа это могло бы выглядеть так: программа отображения данных сотрудника выводит его фотографию в область, имеющую отношение ширины к высоте 3:4 и все файлы фотографий сотрудников в базе данных имеют такое же отношение ширины к высоте. Однако, в реальной жизни добиться такой стандартизации вряд ли представляется возможным. Экономически более целесообразно изменить программное обеспечение автоматизированной системы управления доступом таким образом, чтобы она могла отображать фотографии сотрудников, имеющи любое отношение ширины изображения к высоте, не нарушая их пропорций.
Данная задача является весьма узкой и конечно не претендует на широкий и мощный функционал каких-либо графических пакетов, однако ее решение может быть вполне полезным при разработке приложений, для которых вывод графических изображений в прямоугольную область без нарушения их пропорций является лишь подзадачей.
Таким образом, первая цель, которую ставит перед собой данный дипломный проект это разработка алгоритма вывода графического изображения в прямоугольную область без нарушения его пропорций. Размеры и пропорции выводимого графического изображения заранее неизвестны и необходимо так построить алгоритм, чтобы он работал с изображениями любых размеров, имеющих различные пропорции.
Однако надо отметить, что разработка такого алгоритма и реализация его в рамках одного приложения вряд ли имеет большой практический смысл. Если разработанный алгоритм будет применим только в рамках данного приложения, то он будет представлять ценность только для данного приложения. Дипломный проект ставит перед собой цель не только разработать алгоритм вывода графического изображения в прямоугольную область без нарушения его пропорций, но и реализацию его таким способом, чтобы его можно было быстро и просто применить в других приложениях, написанных на различных языках программирования, в различных системах разработки.
Таким образом, второй задачей дипломного проекта является реализация алгоритма вывода графического изображения в прямоугольную область таким способом, чтобы эту реализацию можно было быстро, просто и корректно использовать в других приложениях. Это позволит разработчикам других приложений различных тематик, написанных на различных языках программирования в различных средах разработки, для которых вывод графического изображения в прямоугольную область является лишь подзадачей, использовать реализацию этого алгоритма в своих приложениях не задумываясь о сути алгоритма.
Таким образом, дипломный проект ставит перед собой две задачи:
разработка алгоритма вывода графического изображения в прямоугольную область таким, образом, чтобы изображение не было искажено в результате нарушения его пропорций, не совпадающих с пропорциями прямоугольной области;
реализация разработанного алгоритма в таком виде, чтобы его могли использовать другие разработчики в своих приложениях, решающих собственные задачи, не задумываясь об аспектах реализации данного алгоритма.

Содержание

Во многих программах возникает задача вывода изображения в Вашу форму. Чаще всего для этого применяется стандартный класс C++ Builder/ Delphi TImage. Однако, что делать если размеры размещенного на форме TImage и размеры изображения не совпадают? TImage имеет свойство Stretch (растягивание), при установке которого выполняется «вписывание» изображения в выделенную под объект TImage прямоугольную область. При этом пропорции полученного изображения могут быть потеряны, если размеры первоначального изображения не пропорциональны размерам области TImage. Идея предлагаемого метода такова: нужно менять размеры самого объекта TImage, таким образом чтобы они (размеры) подстроились под размеры исходного изображения. При этом сам TImage должен быть ограничен прямоугольной областью какого-либо объекта-контейнера, на котором он будет размещаться. Таким объектом может быть, например, TPanel. Таким образом, предлагаемый метод гарантирует, что после его применения к объекту типа TImage, TImage изменит свои размеры так, что станет пропорционален выводимому изображению, при этом не выйдет за пределы объекта-контейнера. А установленное свойство Stretch заполнит изображением всю область TImage, теперь уже пропорционально.

Содержание
Введение 2
1Анализ предметной области 3
1.1Постановка задачи 3
1.2Определение задач и подзадач, формализация задач 6
1.3Требования к разрабатываемым программным модулям 7
1.4Выбор методов решения задачи и средств разработки 8
1.4.1Выбор операционной системы 8
1.4.2Выбор языка программирования 9
1.4.3Выбор методов реализации разработанного алгоритма 11
1.4.3.1Обзор методов повторного использования кода 11
1.4.3.2Классы С++ 12
1.4.3.3Динамически подключаемые библиотеки 13
1.4.3.4Компоненты среды разработки С++ Builder/Delphi 15
1.4.3.5COM-объекты 17
2Разработка алгоритма решения задачи 22
3Программная реализация алгоритма 26
3.1Реализация алгоритма в виде класса на языке С++ 26
3.2Реализация алгоритма в виде динамически подключаемой библиотеки (DLL) 28
3.3Разработка тестового приложения, демонстрирующего использование динмически подключаемой библиотеки (DLL), реализующей алгоритм 34
3.4Реализация алгоритма в виде компонента интегрированной среды разработки С++ Builder 43
3.5Разработка тестового приложения, демонстрирующего использование компонента TSmartImage среды разработки С++ Builder. 50
3.6Разработка COM-объекта 53
3.7Разработка тестового приложения, демонстрирующего работу COM-объекта. 54
4Область применения разработанных программных модулей 56
5Руководство по использованию программных модулей 59
5.1Руководство по использованию динамически подключаемой библиотеки TCImage.dll 59
5.2Руководство по использованию компонента TSmartImage среды разработки С++ Builder. 62
5.3Руководство по использованию COM-объекта 63
6Тестирование и отладка программных модулей 64
6.1Технология отладки программы 64
6.2Инструментальные средства отладки 65
6.3Средства, методика и результаты тестирования 66
Заключение 70
Список использованных источников 71
Приложение 1. Подробный алгоритм расчета размеров области 72
Приложение 2. Реализация класса С++. 73
Приложение 3. Реализация динамически подключаемой библиотеки 76
Приложение 4. Реализация компонента интегрированной среды С++ Builder. 79
Приложение 5. Реализация COM-объекта.

Литература

1.Герберт Шилдт Программирование на C и C++ для Windows 95 - К.: Торгово - издательское бюро BHV, 1996
2.Ч. Петзолд Программирование для Windows 95; в двух томах - СПб.: BHV - Санк-Петербург, 1997
3.Страуструп Б. «Язык программирования Си++» Москва, Радио и связь, 1991
4.Архангельский В.В. Программирование в С++ Builder 4. М.: Бином, 1998г., 560с. с ил.
5. Подбельский В.В., Фомин С.С. Программирование на языке Си: Учеб. Пособие. 2-е доп. Изд. М: Финансы и статистика, 2002. 600с.

Форма заказа

Заполните, пожалуйста, форму заказа, чтобы менеджер смог оценить вашу работу и сообщил вам цену и сроки. Все ваши контактные данные будут использованы только для связи с вами, и не будут переданы третьим лицам.

Тип работы *
Предмет *
Название *
Дата Сдачи *
Количество Листов*
уточните задание
Ваши Пожелания
Загрузить Файлы

загрузить еще одно дополнение
Страна
Город
Ваше имя *
Эл. Почта *
Телефон *
  

Название Тип Год сдачи Страниц Цена
Оптимизация портфеля ценных бумаг с использованием генетического алгоритма Дипломная 2009 127 2500
Проектирвоание автоматизированной информационной системы отдела продаж интернет-магазина Дипломная 2008 89 4000
Автоматизация учета хозяйственных операций в ЗАО Дипломная 2009 84 4000
Web сайт. Создание сайта для фирмы Дипломная 2009 65 4000
Конфигуратор системных блоков персональных компьютеров Дипломная 2010 70 2500
Разработка электронного документооборота для ЗАО "Тренд" Дипломная 2009 103 4000
Анализ имеющихся систем управления контентом (CMS) Дипломная 2009 132 4000
Автоматизированная система реализации услуг на предприятии информационных технологий Дипломная 2010 123 4000
Создание интернет-магазина оптичиских приборов Дипломная 2010 120 4000
Разработка интернет-магазина по продаже футбольной атрибутики ФК Спартак Москва Дипломная 2010 103 4000
курсовые, дипломные, контрольные на заказ скидки на курсовые, дипломные, контрольные на заказ

© 2010-2016, Все права защищены. Принимаем заказы по всей России.