Разработка программы 'Графический редактор'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,45 Мб
  • Опубликовано:
    2012-12-01
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы 'Графический редактор'

Міністерство освіти і науки, молоді і спорту України

Донецький національний університет

Кафедра КОМП’ЮТЕРНИХ технологій








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

Тема: «Розробка програми «Графічний редактор»



Виконавець:

студент 2-го курсу кафедри КТ

Сухомлин Євген Валерійович

Керівник: ст. викладач

Котенко В.М.




Донецьк 2012

Міністерство освіти і науки, молоді і спорту України

Донецький національний університет

Кафедра комп'ютерних технологій

Затверджую Зав. Кафедрою

________________

підпис

__________________

дата

Завдання

На курсову роботу студента 2 курсу Сухомлина Євгена Валерійовича

Спеціалізація Адміністрування комп'ютерних систем

Тема дипломної роботи Розробка програми “Графічний редактор”

Вид роботи - прикладна

Коротка постановка задачі. 1.Визначити структуру програми 2. Розробити і реалізувати засобами системи Visual Basic програмний комплекс з відкриття, загрузки,збереження,печаті та редагування зображень

Вхідні дані. 1. Завдання з написання програмного комплексу 2. Опис середовища розробки додатків Visual Basic.

Очікувані результати: Програмний комплекс з відкриття, загрузки,збереження,печаті та редагування зображень

 

Календарний план роботи

Дата проведення консультації

Етап виконання роботи

Оцінка про виконання

09.02.2012

Вивчення літератури

Виконано

20.02.2012

Проектування програмного комплексу

Виконано

15.04.2012

Програмна реалізація алгоритму системи

Виконано

01.05.2012

Тестування і налагодження системи

Виконано

03.05.2012

Написання звіту з дипломної роботи

Виконано

10.05.2012

Захист дипломної роботи



Оцінка дипломної роботи (виставляється керівником до захисту)_____

Дата видачі завдання 07.02.2012 р.

Керівник ст. викладач Котенко В.М.______________________________

Студент (підпис)______________________________________________

Реферат

Звіт про роботу: 58 с., 14 мал., 2 додатка, 3 джерела.

Об'єкт дослідження - графічний редактор.

Ціль роботи - розробка графічного редактора з використанням Visual Basic.

Метод дослідження - аналіз можливостей системи розробки додатків Visual Basic для cтворення й обробки графічних об'єктів.

У роботі були використані засоби Visual Basic для створення й обробки графічних зображень.

У курсовій роботі був розроблений програмний комплекс для графічних зображень, який дозволяє: продивлятися, додавати та редагувати зображення.

Програмний комплекс для створення та редагування графічних зображень може бути використаний дизайнерами для побудови графічних проектів.

VISUAL BASIC, ГРАФІЧНИЙ РЕДАКТОР, ЗОБРАЖЕННЯ

Содержание

Введение

. Постановка задачи

. Среда разработки приложений Microsoft Visual Basic

. Программа « Графический редактор»

.1 Структура программного комплекса

.2 Описание объектов и их взаимодействия

.3 Аппаратные и программные средства создания и эксплуатации программного комплекса

.5 Описание контрольного примера

Выводы

Список ссылок

Приложения

Введение

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

На сегодняшнее время графический редактор должен обладать несколькими важными свойствами. Он должен иметь довольно таки немалый набор инструментов для работы с графическими файлами. Так же должен иметься набор инструментов, которые позволяют вырезать, копировать и вставлять изображения, а так же изменять их размер и печатать их на листе бумаги.

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

1. Постановка задачи

Разработать программный комплекс на Visual Basic по работе с изображениями.

Программный комплекс должен выполнять следующие действия:

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

.Загружать рисунок, фотографию или другой графический объект с диска

.Сохранять графический файл после редактирования на диск

.Выполнять действия: Копировать, Вставить, Вырезать.

.Осуществлять печать изображения.

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

2. Среда разработки приложений Microsoft Visual Basic

Visual Basic - средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка - языка Бейсик, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.Basic считается хорошим средством быстрой разработки прототипов программы, для разработки приложений баз данных и вообще для компонентного способа создания программ, работающих под управлением операционных систем семейства Microsoft Windows.

Первое признание серьёзными разработчиками Visual Basic получил после выхода версии 3 - VB3. Окончательное признание как полноценного средства программирования для Windows - при выходе версии 5 - VB5. Версия VB6, входящая в состав Microsoft Visual Studio 6.0, стала по-настоящему зрелым и функционально богатым продуктом. После этого разработчики из Microsoft существенно изменили направление развития данной технологии.Basic.NET не позволяет программировать по-старому, ибо по сути является совершенно другим языком, таким же, как и любой другой язык программирования для платформы.NET. Индивидуальность языка, так же как и его преимущества (простота, скорость создания программ, лёгкость использования готовых компонент) при использовании в среде.NET не имеют такого значения, как раньше - всё сосредоточено на возможностях самой системы.NET, на её библиотеке классов. Поэтому сегодня нужно говорить о классическом Visual Basic, его диалектах Visual Basic for Applications (VBA) и Visual Basic Scripting Edition (VBScript) и о языке для платформы.NET - Visual Basic.NET. [1]

Достоинства

1.Высокая скорость создания приложений с графическим интерфейсом для MS Windows.

2.Простой синтаксис, позволяющий очень быстро освоить язык.

3.Возможность компиляции как в машинный код, так и в P-код (по выбору программиста). В режиме отладки программа всегда (вне зависимости от выбора) компилируется в P-код, что позволяет приостанавливать выполнение программы, вносить значительные изменения в исходный код, а затем продолжать выполнение: полная перекомпиляция и перезапуск программы при этом не требуется.

Защита от ошибок, связанных с применением указателей и доступом к памяти. Этот аспект делает Visual Basic приложения более стабильными, но также является объектом критики.

Возможность использования большинства WinAPI функций для расширения функциональных возможностей приложения. Данный вопрос наиболее полно исследован Дэном Эпплманом, написавшим книгу «Visual Basic Programmer’s Guide to the Win32 API».

Недостатки

Поддержка операционных систем только семейства Windows и Mac OS X (Исключение - VB1 for DOS).

Отсутствие механизма наследования реализации объектов. Существующее в языке наследование позволяет наследовать только интерфейсы, но не их реализацию.

Требует установленную msvbvmXX.dll для работы программы.

Низкая скорость работы, обусловленная тем, что практически все встроенные функции языка реализованы через библиотеку времени исполнения (runtime library), которая, в свою очередь, производит много «лишней» работы по проверке и/или преобразованию типов.

Часто критике подвергаются такие аспекты Visual Basic, как возможность отключить средства слежения за объявленными переменными, возможность неявного преобразования переменных, наличие типа данных «Variant». По мнению критиков, это даёт возможность писать крайне плохой код. С другой стороны, это можно рассматривать как плюс, так как VB не навязывает «хороший стиль», а даёт больше свободы программисту.

Отсутствие указателей, низкоуровневого доступа к памяти, ASM-вставок. Несмотря на то, что парадигма Visual Basic позволяет среднему VB-программисту обходиться без всего этого, перечисленные вещи также нередко становятся объектами критики. И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB (например с помощью функций для получения указателей VarPtr(), StrPtr() и ObjPtr()); пользоваться этими трюками гораздо сложнее, чем, например, на Си++.

Однако стоит отметить, что все недостатки языка вытекают из его основного достоинства - простоты разработки графического интерфейса. Поэтому многие программисты используют Visual Basic для разработки интерфейса пользователя, а функциональность программы реализуют в виде динамически подключаемых библиотек (DLL), написанных на другом языке (чаще всего C++).[3]

3. Программа «Графический редактор»

3.1 Структура программного комплекса

Программный комплекс состоит из:

1.       файла проекта Project1.vbp

2.       файла Form1.frm

3.       файла Form1.log

4.       файла Form1.frx

5.       файла Form2.frm

6.       файла Project1.vbw

.2 Описание объектов и их взаимодействия

Проект программы Project1.vbp включает в себя файлы Form1.frm и Form2.frm. В них содержится набор функций и процедур, посредством которых осуществляется работа программного комплекса.

Основные объекты проекта такие:

Form1-контейнер содержащий все остальные компоненты приложения

Меню которое содержит вкладки: Файл-Создать-Открыть-Сохранить-Печать-Выход; Правка-Вырезать-Копировать-Вставить; Изображение-Размер-Очистить;(0)- кнопка для выделения определенной области

Option1(1)- кнопка для выбора инструмента Резинка

Option1(2)- кнопка для выбора инструмента Заливка

Option1(3)- кнопка для выбора инструмента Палитра

Option1(4)- кнопка для выбора инструмента Карандаш

Option1(5)- кнопка для выбора инструмента Распылитель

Option1(6)- кнопка для выбора инструмента Текст

Option1(7)-кнопка для выбора инструмента Линия

Option1(8)- кнопка для выбора инструмента Прямоугольник

Option1(9)-кнопка для выбора инструмента Эллипс

PictureBox4- выбор линий или толщины используемого инструмента

Picturebox5(0-4)- толщина используемого инструмента

Picturebox6(0-14)- палитра с цветами для инструментов

Timer1- таймер для программы

TextBox1- текстовое окно для считывания текста в рисунке

PictureBox9- окно для считывания изображения в программе

Объявляем функции Ellipse и ExtFloodFill из библиотеки gdi32

Параметрами функции Ellipse служат координаты левого верхнего и правого нижнего угла прямоугольника, в который вписан эллипс

Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Параметрами функции ExtFloodFill служат координаты точки внутри закрашиваемой области, цвет заливки и тип заливки

Private Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long

Опишем переменные нашей программы

Для хранения десятичных чисел с плавающей точкой предназначены типы данных single и Double. Переменная с типом данных single занимает 4 байта и может принимать значения в диапазоне -3,4^38... -1,4^-45 для отрицательных чисел и 1,4^-45... 3,4^38 для положительных чисел.

Dim x0 As Single, y0 As Singlex1 As Single, y1 As Single

Переменная булевского типа, определяющая рисуется картинка впервые или нетpicDrawFirst As Boolean

Переменная picDrawWidth целого типа определяет толщину линии. Изначально' устанавливается в единицуpicDrawWidth As Integer

Переменная булевского типа, определяющая нажата ли мышка на изображенииpicMouseDown As Boolean

Опишем процедуры нашей программы

Процедура вызывается Form Load() при загрузке формы (запуске программы)

Private Sub Form_Load()i As Integer

Задает фоновый цвет объектам Picture6(0)-Picture6(15) типа PictureBoxi = 0 To 15(i).BackColor = QBColor(i)

Next(0)

Устанавливает в единицу ширину контура изображения= 1

Устанавливает изображение курсора мышки в изображение Image5 - карандаш.MouseIcon = Image5

устанавливает по умолчанию маску выбираемых из папки файлов в формат bmp

CommonDialog1.Filter = "*.bmp|*.bmp"Sub

Процедура Picture Redraw() реализует меню выбора толщины линии

Выбранную линию выделяем одним цветом, остальные другим

Private Sub Picture Redraw(Index As Integer)i As Integer

Цикл по 5 типам линий

For i = 0 To 4

Если выбранная линия, то выделяем ее

If i = Index Then(i).BackColor = vbHighlight(i).ForeColor = vbHighlightText

иначе задаем черную линию на сером фоне(i).BackColor = vbButtonFace(i).ForeColor = vbButtonTextIf

рисуем саму линию(i).Line (0, 4)-(41, 4)

NextSub

Процедура Sub Option1_Click устанавливает вид курсора мыши в зависимости от нажатой кнопки графического меню

Private Sub Option1_Click(Index As Integer)Case Index1.MouseIcon = Image22.MouseIcon = Image33.MouseIcon = Image44.MouseIcon = Image55.MouseIcon = Image60, 6 To 9

Picture1.MouseIcon = Image7Select

Если окна для вставки текста или картинки видимы, то убираем их, используя соответствующие процедуры TextExit и PictureExit

If Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit

End Sub

Процедура Private Sub TextExit() переносит текст из текстового поля в рисунок и скрывает это поле

Private Sub TextExit().Visible = FalsePicture1.Font = Text1.Font.CurrentX = Text1.Left + 2.CurrentY = Text1.Top + 2.ForeColor = Picture8(1).BackColor.Print Text1.TextSub

Процедура PictureExit() переносит рисунок из графического окна в основной рисунок и скрывает это окно

Private Sub PictureExit().Visible = False.PaintPicture Picture9.image, Picture9.Left + 1, _.Top + 1, Picture9.Width - 2, Picture9.Height - 2, _

, 0, Picture9.Width - 2, Picture9.Height - 2Sub

Процедура Picture1_MouseDown определяет набор действий при нажатии на кнопку мыши

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Если окна для вставки текста или картинки видимы, то убираем их, используя соответствующие процедуры

If Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExitButton = 1 Then Picture1.ForeColor = Picture8(1).BackColor _

Else Picture1.ForeColor = Picture8(0).BackColor

Если в списке инструментов выбраны выделение рисунка или вставка текста, то определяем толщину, режим и стиль рисования

If Option1(0).Value = True Or Option1(6).Value = True Then.DrawWidth = 1.DrawMode = vbInvert.DrawStyle = vbDot

End If

Если выбран ластик, то задаем ширину и цвет как у фона:

If Option1(1).Value = True Then.DrawWidth = 5.ForeColor = Picture8(0).BackColor.PSet (X, Y)

End If

Если выбрана заливка, то устанавливаем стиль и цвет заливки:

If Option1(2).Value = True Then.FillStyle = 0.FillColor = Picture1.ForeColor

Закрашиваем замкнутый участок рисункаPicture1.hdc, X, Y, Picture1.Point(X, Y), 1

Picture1.FillStyle = 1If

Если выбрана установка цвета

If Option1(3).Value = True Then(1).BackColor = Picture1.Point(X, Y)If

Если выбран карандашOption1(4).Value = True Then.PSet (X, Y)If

Если выбран распылитель, устанавливается его толщина в единицу а интервал таймера устанавливается в одну сотую секунды (процедура для распыления написана в таймере)

If Option1(5).Value = True Then.DrawWidth = 1

Timer1.Interval = 10If

Если выбрана линия или прямоугольник

If Option1(7).Value = True Or Option1(8).Value = True Then.DrawMode = vbInvertIf

Если выбран эллипсOption1(9).Value = True Then.AutoRedraw = False.DrawMode = vbInvertIf

Устанавливаем начальные координаты:= X= Y= True= TrueSub

Процедура Picture1_MouseMove определяет набор действий при перемещении мыши

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

В некоторых случаях может получится, что событие MouseMove может возникнуть без предварительного события MouseDown

Поэтому если события MouseDown не было, то выходим из процедуры

If picMouseDown = False Then Exit Sub

Если выбрано выделение рисунка, вставка текста или рисование прямоугольника

If Option1(0).Value = True Or Option1(6).Value = True Or Option1(8).Value = True Then

Если прямоугольник был нарисован, то стираем его и рисуем прямоугольник с новыми координатами

If picDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.Line (x0, y0)-(X, Y),, B

End If

Если выбран ластик или карандаш, то проводим линию указанного цвета (если это ластик, то цвет-это цвет фона):

Если выбрана установка цветаOption1(3).Value = True Then(1).BackColor = Picture1.Point(X, Y)

End If

Если выбран распылитель, то указываем координаты

If Option1(5).Value = True Then= X

y0 = YIf

Если выбрана линияOption1(7).Value = True Then

Если линия была нарисована, то стираем ее и рисуем линию с новыми координатами

If picDrawFirst = False Then.Line (x0, y0)-(x1, y1)If.Line (x0, y0)-(X, Y)If

Если выбран эллипсOption1(9).Value = True Then

Если эллипс был нарисован, то стираем его и рисуем эллипс с новыми координатами

If picDrawFirst = False ThenPicture1.hdc, x0, y0, x1, y1IfPicture1.hdc, x0, y0, X, YIf= X= Y= False

End Sub

Процедура определяет набор действий при отпускании кнопки мыши

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)picMouseDown = False Then Exit Subyt As Single, yd As Single, xl As Single, xr As Single

Если выбрано выделение рисункаOption1(0).Value = True Then

Если был нарисован прямоугольник, то стираем его

If picDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.DrawMode = vbCopyPen.DrawWidth = picDrawWidth

Picture1.DrawStyle = vbSolid

Передвигаем Picture9 в соответствии с координатами прямоугольника

If x0 < x1 Then xl = x0: xr = x1 Else xl = x1: xr = x0y0 < y1 Then yu = y0: yd = y1 Else yu = y1: yd = y0.Move xl - 1, yu - 1, xr - xl + 3, yd - yu + 3

Рисуем на Picture9 изображение той части рисунка, над которой он находится

Picture9.Cls.PaintPicture Picture1.image, 0, 0, xr - xl + 1, yd - yu + 1, xl, yu, xr - xl + 1, yd - yu + 1.ForeColor = Picture8(0).BackColor

Стираем ту часть рисунка, над которой находится Picture9.DrawWidth = 1.Line (xl, yu)-(xr, yd),, BF.DrawWidth = picDrawWidth.Visible = True

Picture9.SetFocusIf

Если выбран ластик, то указываем его толщину

If Option1(1).Value = True Then.DrawWidth = picDrawWidth

End If

Если выбран распылитель, то указываем его толщину, а интервал таймера устанавливаем в ноль

If Option1(5).Value = True Then.DrawWidth = picDrawWidth.Interval = 0If

Если выбрана вставка текстаOption1(6).Value = True Then

Если был нарисован прямоугольник, то стираем его

If picDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.DrawMode = vbCopyPen.DrawWidth = picDrawWidth.DrawStyle = vbSolid.Text = ""

Передвигаем текстовое окошко в соответствии с координатами прямоугольника

If x0 < x1 Then xl = x0: xr = x1 Else xl = x1: xr = x0y0 < y1 Then yu = y0: yd = y1 Else yu = y1: yd = y0.Move xl - 1, yu - 1, xr - xl + 3, yd - yu + 3

Делаем текст видимым и устанавливаем на него фокус

Text1.Visible = True.SetFocusIf

Если выбрана линияOption1(7).Value = True Then

Если линия была нарисована, то стираем ее и окончательно рисуем линию с новыми координатами

If picDrawFirst = False Then.Line (x0, y0)-(x1, y1)If.DrawMode = vbCopyPen.Line (x0, y0)-(X, Y)If

Если выбран прямоугольникOption1(8).Value = True Then

и если прямоугольник был нарисован, то стираем его и окончательно рисуем прямоугольник с новыми координатами

If picDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.DrawMode = vbCopyPen.Line (x0, y0)-(X, Y),, BIf

Если выбран эллипсOption1(9).Value = True Then

Если эллипс был нарисован, то стираем его и окончательно рисуем эллипс с новыми координатами

If picDrawFirst = False ThenPicture1.hdc, x0, y0, x1, y1If.DrawMode = vbCopyPen.AutoRedraw = TruePicture1.hdc, x0, y0, X, Y

Обновляем изображение.RefreshIf

Устанавливаем режим нажатия мыши в «Ложь»= FalseSub

Процедура Timer1_Timer() определяет набор действий при работе таймера:

Private Sub Timer1_Timer()i As Integer

Создаем эффект распыления путем печати точек с произвольными координатами вокруг координат мышки

For i = 1 To 10.PSet (x0 - 5 + Int(Rnd * 11), y0 - 5 + Int(Rnd * 11)), Picture1.ForeColor

End Sub

Процедура Picture9_MouseMove совершает следующий набор действий:

Private Sub Picture9_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Если нажата кнопка мышки, то перемещаем выделенную картинку в соответствии с координатами мышки

If Button = 1 Then.Left = Picture9.Left + X - x0.Top = Picture9.Top + Y - y0

End IfSub

Процедура Text1_Change() совершает следующий набор действийSub Text1_Change()

Отрисовывает текст и имитирует autosize для текстового окошка

Label1.Caption = Text1.TextLabel1.Width + 10 > Text1.Width Then Text1.Width = Label1.Width + 10

End Sub

Процедура Picture5_Click позволяет выбрать толщину указанной линии:

Private Sub Picture5_Click(Index As Integer)

Выбор толщины линии(Index).DrawWidth = Index + 1= Index + 1

End Sub

Процедура Picture6_MouseDown совершает следующие операции

Private Sub Picture6_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

Выбор цвета:Button = 1 Then(1).BackColor = Picture6(Index).BackColor(0).BackColor = Picture6(Index).BackColor

End IfSub

Процедура Picture1_Resize() устанавливает максимальные значения полос прокруток в соответствии с размером рисунка:

VScroll1.Value = 0

Делает видимой полосу горизонтального скроллинга при некотором условии:

If Picture1.Width > Picture2.ScaleWidth - 17 Then.Max = Picture1.Width - Picture2.ScaleWidth + 17

HScroll1.Enabled = True

Иначе полоса горизонтального скроллинга невидима:

HScroll1.Enabled = FalseIfPicture1.Height > Picture2.ScaleHeight - 17 Then.Max = Picture1.Height - Picture2.ScaleHeight + 17.Enabled = True.Enabled = False

End IfSub

Следующие процедуры реализуют команды меню

Файл, Правка, Изображение

Private Sub new_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.Picture = Nothing.BackColor = vbWhite.Width = 441.Height = 361(1).BackColor = vbBlack(0).BackColor = vbWhite.Caption = "Точечный рисунок - GraphEdit"SubSub open_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExitError Resume Next.ShowOpenErr Then Exit Sub.Caption = CommonDialog1.FileTitle + " - GraphEdit".Picture = LoadPicture(CommonDialog1.FileName)(1).BackColor = vbBlack(0).BackColor = vbWhiteSubSub save_Click()

If Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.FileName = Left$(Form1.Caption, Len(Form1.Caption) - 12)Error Resume Next.ShowSaveErr Then Exit SubCommonDialog1.FileName <> "" Then.Caption = CommonDialog1.FileTitle + " - GraphEdit"Picture1.image, CommonDialog1.FileNameIfSubSub print_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.PaintPicture Picture1.image, 0, 0.EndDocSubSub size_Click().Text1.Text = Picture1.Width.Text2.Text = Picture1.Height.Show vbModalSubSub clear_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.Picture = Nothing.BackColor = Picture8(0).BackColorSubSub copy_Click()Picture9.Visible = True Then.clear.SetData Picture9.imageIfSubSub cut_Click()Picture9.Visible = True Then.clear.SetData Picture9.image.Visible = FalseIfSubSub paste_Click()(0).Value = True.Picture = Clipboard.GetData().Move -1, -1Picture1.Width < Picture9.ScaleWidth Then Picture1.Width = Picture9.ScaleWidthPicture1.Height < Picture9.ScaleHeight Then Picture1.Height = Picture9.ScaleHeight

Picture9.Visible = TrueSub

3.3 Аппаратные и программные средства создания и эксплуатации программного комплекса

Для функционирования программного комплекса необходимы следующие аппаратные ресурсы:

·   Процессор - Pentium 4, Celeron и выше;

·   Оперативная память - 256 MB и выше;

·   Видеокарта с памятью 128 Мб и выше;

·   Монитор с разрешением 1024x768 и выше;

·   Жесткий диск объемом 1 ГБ и выше.

Для функционирования программного комплекса необходимо следующее программное обеспечение:

·   Операционная система Windows XP,Vista, 7.

·   Microsoft Visual Basic 6.0 или выше

3.4 Руководство пользователя

Программа имеет имя Project1.Для запуска программного комплекса на компьютере должен быть установлен Visual Basic 6.0. Запускаем в меню пуск программу Microsoft Visual Basic 6.0. После запуска открываем вкладку File, там выбираем Open Project, после выбираем файл Project 1.vbp.

Открывается проект, в котором мы видим окошко с программным кодом и окошко самой программы. Чтобы запустить саму программу, нажимаем под вкладкой Diagramm кнопку Start. Открывается уже работающая программа, в которой мы можем производить различные действия. Открываем вкладку Создать. Создается файл с расширением.bmp. К нему мы можем применять различные графические инструменты, такие как Кисть, карандаш, Распылитель и т. д.

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

.5 Описание контрольного примера

Программа имеет имя Project1.exe. Для её запуска необходимо перейти в соответствующую директорию и дважды кликнуть мышкой на имени файла. После запуска программы на экране появиться главное окно программного комплекса (Рис.А1.). Далее можно кликнуть мышкой на какой либо инструмент, в зависимости от требуемой задачи. Так например кликнем на инструмент заливка. После этого инструмент измениться со стандартного карандаша, на выбранный - заливка (Рис.А2.). Ниже расположена палитра цветов, в которой можно выбрать цвет инструмента и рисовать этим цветом, так например выберем зеленый цвет и используем заливку красного цвета (Рис.А3.). Чтобы очистить экран рабочего пространства, можно использовать 2 способа, один долгий, выбрав инструмент ластик (Рис.А4.) другой более быстрый выбрав вкладку Изображение-Очистить (Рис.А5.), при этом сразу очищается рабочее пространство. Так же у нас есть в панели инструментов такие инструменты как текст. Для того чтобы применить инструмент текст надо нажать на соответствующую кнопку в панели инструментов, после чего выбрать область в которой будет написан текст (Рис.А6). После этих операций мы сможем написать текст в выделенной области (Рис.А7.). Теперь применим инструмент прямоугольник. Мы выделяем область мышкой и таким образом у нас рисуется прямоугольник (Рис.А8.). Выберем инструмент эллипс. Нарисуем эллипс. Для этого нам всего лишь надо, аналогично с прямоугольником выбрать область и всё, эллипс нарисован (Рис А9). Теперь испытаем инструмент линия. Для этого нужно выбрать инструмент линия в панели инструментов и просто протянуть мышкой линию, чтобы её начертить (Рис А10).

Теперь рассмотрим верхнюю панель программного комплекса. Там находятся такие вкладки как: Файл, Правка и Изображение.

Рассмотрим вкладку Файл, там мы видим такие пункты как Создать, Открыть, Сохранить, Печать, Выход. При нажатии кнопки Создать открывается чистый лист на котором мы можем выполнять различные действия. При нажатии на кнопку открыть мы можем выбрать сохраненный рисунок в формате.bmp (Рис А11.). При выборе пункта Сохранить открывается окошко «Сохранить как» и там мы задаём имя, а так же путь куда надо сохранить файл (Рис.А12). При выборе Печати, открывается окошко печати в файл (Рис.А13.). При выборе Пункта выход, осуществляется выход из программы.

Рассмотрим следующую вкладку под названием Правка, там есть Пункты Вставить, Копировать и Вырезать. Вставить осуществляет вставку копированного изображения, Копировать заносит в буфер изображение, вырезать, осуществляет вырезку изображения.

Вкладка Изображение содержит всего 2 пункта, Очистить и Размер.

Очистить выполняет операцию по очищению рабочего листа. Пункт Размер открывает окошко в котором можно задать параметры ширины и высоты рабочего листа (Рис.А14).

Выводы

приложение редактирование изображение

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

Программа включает в себя 10 инструментов по работе с изображениями, палитру, состоящую из 16 цветов.

Разработанный программный комплекс, позволяет:

1.       Создавать изображение формата.bmp, а также сохранять его на диске и загружать его с диска.

2.       Редактировать изображение благодаря панели инструментов

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

.         Изменять размер изображения и выводить его на печать

.         Очищать рабочее пространство, когда это потребуется

Для решения поставленной задачи была использована среда быстрой разработки приложений Visual Basic.

Список ссылок

1. Visual Basic [Электрон. ресурс]. - Режим доступа: #"577433.files/image001.gif">

Рис.А1.

Рис.А2.

Рис.А3.

Рис.А4.

Рис.А5.

Рис.А6.

Рис.А7.

Рис А8.

Рис.А9.

Рис А10.

Рис.А11.

Рис.А12.


Рис. А14

Приложение В

Листинг программы

Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongDeclare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Longx0 As Single, y0 As Singlex1 As Single, y1 As SinglepicDrawFirst As BooleanpicDrawWidth As IntegerpicMouseDown As BooleanSub Form_Load()i As Integeri = 0 To 15(i).BackColor = QBColor(i)(0)= 1.MouseIcon = Image5.Filter = "*.bmp|*.bmp"SubSub PictureRedraw(Index As Integer)i As Integeri = 0 To 4i = Index Then(i).BackColor = vbHighlight(i).ForeColor = vbHighlightText(i).BackColor = vbButtonFace(i).ForeColor = vbButtonTextIf(i).Line (0, 4)-(41, 4)SubSub Option1_Click(Index As Integer)Case Index1.MouseIcon = Image22.MouseIcon = Image33.MouseIcon = Image44.MouseIcon = Image55.MouseIcon = Image60, 6 To 9.MouseIcon = Image7SelectText1.Visible = True Then TextExitPicture9.Visible = True Then PictureExitSubSub TextExit().Visible = FalsePicture1.Font = Text1.Font.CurrentX = Text1.Left + 2.CurrentY = Text1.Top + 2.ForeColor = Picture8(1).BackColor.Print Text1.TextSubSub PictureExit().Visible = False.PaintPicture Picture9.image, Picture9.Left + 1, _.Top + 1, Picture9.Width - 2, Picture9.Height - 2, _

, 0, Picture9.Width - 2, Picture9.Height - 2SubSub Option1_GotFocus(Index As Integer).SetFocusSubSub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExitButton = 1 Then Picture1.ForeColor = Picture8(1).BackColor _Picture1.ForeColor = Picture8(0).BackColorOption1(0).Value = True Or Option1(6).Value = True Then.DrawWidth = 1.DrawMode = vbInvert.DrawStyle = vbDotIfOption1(1).Value = True Then.DrawWidth = 5.ForeColor = Picture8(0).BackColor.PSet (X, Y)IfOption1(2).Value = True Then.FillStyle = 0.FillColor = Picture1.ForeColorPicture1.hdc, X, Y, Picture1.Point(X, Y), 1.FillStyle = 1IfOption1(3).Value = True Then(1).BackColor = Picture1.Point(X, Y)IfOption1(4).Value = True Then.PSet (X, Y)IfOption1(5).Value = True Then.DrawWidth = 1.Interval = 10IfOption1(7).Value = True Or Option1(8).Value = True Then.DrawMode = vbInvertIfOption1(9).Value = True Then.AutoRedraw = False.DrawMode = vbInvertIf= X= Y= True= TrueSubSub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)picMouseDown = False Then Exit SubOption1(0).Value = True Or Option1(6).Value = True Or Option1(8).Value = True ThenpicDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.Line (x0, y0)-(X, Y),, BIfOption1(1).Value = True Or Option1(4).Value = True Then.Line -(X, Y)IfOption1(3).Value = True Then(1).BackColor = Picture1.Point(X, Y)IfOption1(5).Value = True Then= X= YIfOption1(7).Value = True ThenpicDrawFirst = False Then.Line (x0, y0)-(x1, y1)If.Line (x0, y0)-(X, Y)IfOption1(9).Value = True ThenpicDrawFirst = False ThenPicture1.hdc, x0, y0, x1, y1IfPicture1.hdc, x0, y0, X, YIf= X= Y= FalseSubSub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)picMouseDown = False Then Exit Subyt As Single, yd As Single, xl As Single, xr As SingleOption1(0).Value = True ThenpicDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.DrawMode = vbCopyPen.DrawWidth = picDrawWidth.DrawStyle = vbSolidx0 < x1 Then xl = x0: xr = x1 Else xl = x1: xr = x0y0 < y1 Then yu = y0: yd = y1 Else yu = y1: yd = y0.Move xl - 1, yu - 1, xr - xl + 3, yd - yu + 3.Cls.PaintPicture Picture1.image, 0, 0, xr - xl + 1, yd - yu + 1, xl, yu, xr - xl + 1, yd - yu + 1.ForeColor = Picture8(0).BackColor.DrawWidth = 1.Line (xl, yu)-(xr, yd),, BF.DrawWidth = picDrawWidth.Visible = True.SetFocusIfOption1(1).Value = True Then.DrawWidth = picDrawWidthIfOption1(5).Value = True Then.DrawWidth = picDrawWidth.Interval = 0IfOption1(6).Value = True ThenpicDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.DrawMode = vbCopyPen.DrawWidth = picDrawWidth.DrawStyle = vbSolid.Text = ""x0 < x1 Then xl = x0: xr = x1 Else xl = x1: xr = x0y0 < y1 Then yu = y0: yd = y1 Else yu = y1: yd = y0.Move xl - 1, yu - 1, xr - xl + 3, yd - yu + 3.Visible = True.SetFocusIfOption1(7).Value = True ThenpicDrawFirst = False Then.Line (x0, y0)-(x1, y1)If.DrawMode = vbCopyPen.Line (x0, y0)-(X, Y)IfOption1(8).Value = True ThenpicDrawFirst = False Then.Line (x0, y0)-(x1, y1),, BIf.DrawMode = vbCopyPen.Line (x0, y0)-(X, Y),, BIfOption1(9).Value = True ThenpicDrawFirst = False ThenPicture1.hdc, x0, y0, x1, y1If.DrawMode = vbCopyPen.AutoRedraw = TruePicture1.hdc, x0, y0, X, Y.RefreshIf= FalseSubSub Timer1_Timer()i As Integeri = 1 To 10.PSet (x0 - 5 + Int(Rnd * 11), y0 - 5 + Int(Rnd * 11)), Picture1.ForeColorSubSub Picture9_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)= X= YButton = 2 Then PopupMenu editSubSub Picture9_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Button = 1 Then.Left = Picture9.Left + X - x0.Top = Picture9.Top + Y - y0IfSubSub Text1_Change().Caption = Text1.TextLabel1.Width + 10 > Text1.Width Then Text1.Width = Label1.Width + 10SubSub Picture5_Click(Index As Integer)(Index).DrawWidth = Index + 1= Index + 1SubSub Picture6_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)Button = 1 Then(1).BackColor = Picture6(Index).BackColor(0).BackColor = Picture6(Index).BackColorIfSubSub Picture1_Resize().Value = 0.Value = 0Picture1.Width > Picture2.ScaleWidth - 17 Then.Max = Picture1.Width - Picture2.ScaleWidth + 17.Enabled = True.Enabled = FalseIfPicture1.Height > Picture2.ScaleHeight - 17 Then.Max = Picture1.Height - Picture2.ScaleHeight + 17.Enabled = True.Enabled = FalseIfSubSub VScroll1_Change().Top = -VScroll1.ValueSubSub VScroll1_Scroll().Top = -VScroll1.ValueSubSub HScroll1_Change().Left = -HScroll1.ValueSubSub HScroll1_Scroll().Left = -HScroll1.ValueSubSub new_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.Picture = Nothing.BackColor = vbWhite.Width = 441.Height = 361(1).BackColor = vbBlack(0).BackColor = vbWhite.Caption = "Точечный рисунок - GraphEdit"SubSub open_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExitError Resume Next.ShowOpenErr Then Exit Sub.Caption = CommonDialog1.FileTitle + " - GraphEdit".Picture = LoadPicture(CommonDialog1.FileName)(1).BackColor = vbBlack(0).BackColor = vbWhiteSubSub save_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.FileName = Left$(Form1.Caption, Len(Form1.Caption) - 12)Error Resume Next.ShowSaveErr Then Exit SubCommonDialog1.FileName <> "" Then.Caption = CommonDialog1.FileTitle + " - GraphEdit"Picture1.image, CommonDialog1.FileNameIfSubSub print_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.PaintPicture Picture1.image, 0, 0.EndDocSubSub size_Click().Text1.Text = Picture1.Width.Text2.Text = Picture1.Height.Show vbModalSubSub clear_Click()Text1.Visible = True Then TextExitPicture9.Visible = True Then PictureExit.Picture = Nothing.BackColor = Picture8(0).BackColorSubSub copy_Click()Picture9.Visible = True Then.clear.SetData Picture9.imageIfSubSub cut_Click()Picture9.Visible = True Then.clear.SetData Picture9.image.Visible = FalseIfSubSub paste_Click()(0).Value = True.Picture = Clipboard.GetData().Move -1, -1Picture1.Width < Picture9.ScaleWidth Then Picture1.Width = Picture9.ScaleWidthPicture1.Height < Picture9.ScaleHeight Then Picture1.Height = Picture9.ScaleHeight.Visible = TrueSub

Похожие работы на - Разработка программы 'Графический редактор'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!