Содержание
Введение
1. Постановка задачи
1.1 Входные и выходные данные
2. Проектирование приложения
2.1 Обоснование и выбор средств разработки
2.2 Разработки 2D Paint
Заключение
Список используемой литературы
Приложение
Введение
В последнее время ни одна электронная технология не развивалась так стремительно, как компьютерная графика. Благодаря ей художники сменили мольберт на экран компьютера, фотографы получили удобные инструменты для повышения качества снимков и лучшего их оформления. А о дизайнерах и говорить не приходится -- ведь какую бы область дизайна мы ни взяли, для каждой сегодня существуют специализированные графические приложения, позволяющие разработать все что угодно, начиная от простенькой визитки и заканчивая дизайном автомобиля или коттеджа. Правда, последнее относится уже к области 3D и потому выходит за рамки данного проекта.
Что же касается двумерной графики, то и ее возможности почти безграничны. Возьмем любой полиграфический продукт: и на упаковке стирального порошка, и на обложке модного журнала, и на коробке компакт-диска, и на огромном рекламном плакате у дороги -- изображения, которые разрабатывались или обрабатывались на компьютере. Разработка офисного стиля -- визиток, бланков и т.п. -- также ведется методами двумерной графики. Сюда же можно отнести и создание Web-сайта организации, правда это уже особое дизайнерское направление. Перед началом работы над проектом были рассмотрены несколько известных графических редакторов.
The GIMP - бесплатный графический редактор для фотографий и других растровых изображений, а также векторной графики. Программа успешно применяется в производстве логотипов, для цветовой корректировки фотоснимка, дизайна с использованием наслоения графических изображений. Программное обеспечение может удалять участки рисунка и производить конвертацию между разными типами файлов с графикой в палитрах rgb cmyk. Кроме того, редактор картинок обладает открытым исходым кодом, благодаря чему многие пользователи со знанием основ программирования адаптируют программу для собственных нужд.
Ключевые особенности редактора The GIMP:
· Комплексный набор инструментов для рисования (карандаш, кисть, клоны и пр.);
· Параллельная обработка нескольких открытых цифровых изображений;
· Средства трансформации (вращение, наклон, масштаб, отражение);
· Текстовое редактирование слоев за счет альфа-каналов;
· Пакетная обработка, фильтры, экспозиция;
· Анимационная графика в формате MNG;
· Сохранение истории цифровых изображений.
Графический редактор GIMP - программа для графического дизайна, достойная альтернатива редактору Аdobe Рhotoshop. Несколько запутанный интерфейс множеством окон может дезориентировать новичка, но привыкнув к системе, пользователь обязательно оценит огромный потенциал программы растровой и векторной графики. Если же привыкнуть не получилось, всегда можно скачать Фотошоп и платить за него ежемесячно.
Movavi Photo Editor - пожалуй, лучший полупрофессиональный растровый редактор. Он не поддерживает работу со слоями, не позволяет рисовать заурядную графику специальными кистями и не адаптирован для графического планшета. Но средство полностью отвечает требованиям рядового пользователя, любителя фотографии, до неприличия простое в управлении, приобретается один раз и навсегда, в отличие от «подписного» софта. Приложение уникальное в своем сегменте. С ним редактировать изображения могут даже новички.
Ключевые особенности Movavi Photo Editor:
· Высокое качество обработки в сумме с простым интерфейсом;
· Анимированные подсказки для сложных операций с примерами;
· Ручная и автоматическая коррекция на выбор пользователя;
· Обилие тонких настроек изображения;
· Десятки фильтров, эффектов и профилей;
· Продуманный инструмент ретуши вплоть до мельчайших элементов внешности.
Paint.NET - редактор фотографий для корректировки растровых и векторных изображений с высокой четкостью, доступный для бесплатной установки. Удобство работы с камерой и сканером делают бесплатный графический редактор картинок для Виндовс универсальным помощником квалифицированным фотографам. Также в сети вы найдете большое количество дополнительных плагинов для просмотра и редактирования снимков.
Ключевые особенности программы Paint.NET:
· Поддержка форматов svg, bmp, png, gif, tif, jpeg и pdn;
· Внешний вид понятный неопытному пользователю;
· Обработка изображений с наложением слоев;
· Инструменты для векторной графики (клонирование рисунков, «волшебная палочка», масштабирование, замена цвета);
· Длинная история графического редактора, ограниченная объемами диска;
· Вспомогательные эффекты (контраст, яркость, насыщенность, оттенок и 3D-вращение);
· Плагины расширяют возможности графического редактора и насыщают его спецэффектами;
· Слабое потребление ресурсов железа ПК;
· Поддержка режима 256 цветов - 8 бит.
Inkscape -- векторный графический редактор с развитыми функциональными возможностями, используемый для создания логотипов, визиток, плакатов и презентаций. Поддерживает большинство современных форматов файлов, умеет работать со слоями, обладает широким набором эффектов и фильтров.
Возможности Inkscape
· Векторизация растровой графики;
· Интегрированный редактор шрифтов;
· Позволяет устанавливать горячие клавиши;
· Встроенная опция коллективного рисования;
· Возможность применять фильтры и эффекты;
· Функция высококачественной печати проектов;
· Выделение, масштабирование, поворот объектов;
· Регулировка яркости, насыщенности, контрастности;
· Работа с контурами, фигурами, текстом и маркерами;
· Редактирование изображений в сжатом виде в формате gZip;
· Большое количество инструментов для создания векторной графики;
· Различные примеры и уроки по использованию Inkscape на сайте разработчика;
· Импорт файлов в формате JPEG, PNG, TIFF, GIF, BMP, RAS, TGA, WBMP, XBM, XPM, POV, DXF и т.д.
1. Постановка задачи
Целью моего курсового проекта является разработка собственного графического редактора для рисования двумерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D.
В настоящее время существуют множество программ для рисования двумерной графики , написанных для OC windows, с применением различных технологий программирования и разной степени сложности.
Поэтому моей основной задачей при разработке приложения является повышение навыков программирования на языке Java и приобретение практического опыта.
Данное приложение можно использовать как альтернативу стандартного windows приложения для создания графических изображений.
При разработке данной программы предполагается использование уже готовых компонентов и библиотек классов, так что в данной работе будет написан функционал приложения, а вся логика работы с графическими файлами уже написана. Последние несколько лет разработчики прилагали массу усилий, чтобы интегрировать графику и анимацию в свои апплеты и приложения Java. Однако первоначально включенные в Java графические пакеты AWT Java имели ограниченные средства для решения таких задач. Теперь же, используя интерфейсы прикладного программирования Java 2D, разработчики могут реализовывать гораздо более сложные графические приложения, включая игры, хранители экрана, экранные заставки . Программное обеспечение я назвал 2D Paint.
1.1 Входные и выходные данные
Для написания курсовой работы использовались следующие программы:
1. Язык программирования Java с версией jdk1.6.0.
2. Платформа, интегрированная под Java - NetBeans IDE 6.0.
Приложение разрабатываемые в данном курсовом проекте должно уметь создавать графические объекты и иметь следующие функции:
- создание изображения;
- редактирование изображения;
- сохранение изображения;
-загрузка изображения из файла.
Функциональная панель управления редактора предполагает наличие следующих кнопок:
-«карандаш»
-«ластик»
-«прямоугольник»
-«овал»
-«текст»
2. Проектирование приложения
2.1 Обоснование и выбор средств разработки
Программы, тесно взаимодействующие с пользователем, воспринимающие сигналы от клавиатуры и мыши, работают в графической среде. Каждое приложение, предназначенное для работы в графической среде, должно создать хотя бы одно окно, в котором будет происходить его работа, и зарегистрировать его в графической оболочке операционной системы, чтобы окно могло взаимодействовать с операционной системой и другими окнами: перекрываться, перемещаться, менять размеры, сворачиваться в ярлык.
В технологии Java графика осложняется тем, что приложения Java должны работать в любой или хотя бы во многих графических средах. Нужна библиотека классов, независимая от конкретной графической системы. В первой версии JDK задачу решили следующим образом: были разработаны интерфейсы, содержащие методы работы с графическими объектами. Классы библиотеки AWT реализуют эти интерфейсы для создания приложений. Приложения Java используют данные методы для размещения и перемещения графических объектов, изменения их размеров, взаимодействия объектов.
Библиотека классов Java, основанных на peer-интерфейсах, получила название AWT (Abstract Window Toolkit). При выводе объекта, созданного в приложении Java и основанного на peer-интерфейсе, на экран создается парный ему (peer-to-peer) объект графической подсистемы операционной системы, который и отображается на экране.
В версии JDK 1.1 библиотека AWT была переработана. В нее добавлена возможность создания компонентов, полностью написанных на Java и не зависящих от peer-интерфейсов. Такие компоненты стали называть "легкими" (lightweight) в отличие от компонентов, реализованных через peer-интерфейсы, названных "тяжелыми" (heavy).
Была создана обширная библиотека "легких" компонентов Java, названная Swing. В ней были переписаны все компоненты библиотеки AWT, так что библиотека Swing может использоваться самостоятельно, несмотря на то, что все классы из нее расширяют классы библиотеки AWT.
Библиотека классов Swing поставлялась как дополнение к JDK 1.1. В состав Java 2 SDK она включена как основная графическая библиотека классов, реализующая идею "100% Pure Java", наряду с AWT.
В Java 2 библиотека AWT значительно расширена добавлением новых средств рисования, вывода текстов и изображений, получивших название Java 2D, и средств, реализующих перемещение текста методом DnD (Drag and Drop).
Кроме того, в Java 2 включены новые методы ввода/вывода Input Method Framework и средства связи с дополнительными устройствами ввода/вывода, такими как световое перо или клавиатура Бройля, названные Accessibility.
Все эти средства Java 2: AWT, Swing, Java 2D, DnD, Input Method Framework и Accessibility составили библиотеку графических средств Java, названную JFC (Java Foundation Classes).
Компонент и контейнер
Основное понятие графического интерфейса пользователя (ГИП) -- компонент (component) графической системы. В русском языке это слово подразумевает просто составную часть, элемент чего-нибудь, но в графическом интерфейсе это понятие гораздо конкретнее. Оно означает отдельный, полностью определенный элемент, который можно использовать в графическом интерфейсе независимо от других элементов. Например, это поле ввода, кнопка, строка меню, полоса прокрутки, радиокнопка. Само окно приложения -- тоже его компонент. Компоненты могут быть и невидимыми, например, панель, объединяющая компоненты, тоже является компонентом.
В AWT компонентом считается объект класса Component или объект всякого класса, расширяющего класс component. В классе Component собраны общие методы работы с любым компонентом графического интерфейса пользователя. Этот класс -- центр библиотеки AWT.
Каждый компонент перед выводом на экран помещается в контейнер (Container). Контейнер "знает", как разместить компоненты на экране. Разумеется, в языке Java контейнер -- это объект класса Container или всякого его расширения. Прямой наследник этого класса -- класс JСomponent -- вершина иерархии многих классов библиотеки Swing.
Создав компонент -- объект класса Component или его расширения, следует добавить его к предварительно созданному объекту класса Container или его расширения одним из методов add ().
Класс Container сам является невидимым компонентом, он расширяет класс Component. Таким образом, в контейнер наряду с компонентами можно помещать контейнеры, в которых находятся какие-то другие компоненты, достигая тем самым большой гибкости расположения компонентов.
Иерархия классов AWT
Иерархию основных классов AWT составляют готовые компоненты: Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextArea, TextField, Menubar, Menu, PopupMenu, Menultem, CheckboxMenuItem. Если этого набора не хватает, то от класса Canvas можно породить собственные "тяжелые" компоненты, а от класса Component -- "легкие" компоненты (используемые в библиотеке Swing).
Основные контейнеры - это классы Panel, ScrollPane, Window, Frame, Dialog, FileDialog. Свои "тяжелые" контейнеры можно породить от класса Panel, а "легкие" -- от класса Container.
Целый набор классов помогает размещать компоненты, задавать цвет, шрифт, рисунки и изображения, реагировать на сигналы от мыши и клавиатуры.