Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Цифровые устройства /

ISO - Графический редактор на Delphi 5

←предыдущая следующая→
1 2 3 4 



Скачать реферат


'невидимым' карандашом или кистью рисуется тем же цветом и стилем симметричная линия (одна или три в зависимости от типа симметрии).

Хотелось бы отдельно отметить инструмент 'звезда', так как, умело из¬меняя его свойства, можно превратить его в мощного помощника. Если внут¬ренний радиус сделать 100% от внешнего, то можно рисовать различные правильные многоугольники, в зависимости от установленного числа концов звезды. А если внутренний радиус будет менее 100%, то рисуются невыпук¬лые многоугольники с равными сторонами, и чем больше концов у звезды, тем больше фигура походит на солнышко. При внутреннем радиусе равным 0% рисуется окружность (если стоит опция 'вписать звезду в круг') поделён¬ная на сектора.

Эффекты.

Графический эффект (graphic effect) – это определённое преобразование изображения. Либо это цветовое преобразование, либо деформация (переме¬щение пикселей), либо то и другое одновременно. В программе эффекты применяются для всего рисунка или для выделенной области (если таковая имеется). Работу эффекта трудно передать словами, поэтому ниже приво¬дится список эффектов без их описания. Названия говорят сами за себя.

1. Зеркальное отражение по горизонтали и по вертикали.

2. Поворот на 90, 180, 270 или на другой произвольный угол.

3. Растяжение.

4. Наклон по горизонтали и вертикали.

5. Блоки.

6. Линза.

7. Сжатие.

8. Разброс (иней).

9. Завихрение.

10. Пикселизация (мозаика).

11. Волны синусоидальные или трёхмерные (вид сверху).

12. Рыбий глаз.

13. Плазма.

14. Подсвеченный рельеф (источник света).

15. Тень (в разные стороны).

16. Morph фильтр (минимум, максимум, открытый, закрытый).

17. Негатив (инверсия).

18. Порог (черно-белый).

19. Шум.

20. Край (между основным и дополнительным цветом).

21. Рельеф.

22. Смягчение.

23. Авто-смягчение.

24. Смягчение.

25. Смазывание.

26. Резкость (чёткость).

27. Фильтр пользователя (матрица 5x5).

28. Замена на оттенки серого или другого цвета.

29. Замена составляющих цвета.

30. Замена основного на дополнительный цвет.

31. Фильтр HSL (оттенок, насыщенность, яркость).

32. Гамма.

33. Баланс составляющих цвета (RGB).

34. Яркость.

35. Соляризация.

36. Пастеризация.

37. Усилить или ослабить контрастность.

38. Общий и местный контраст.

Фильтр пользователя – это изменение каждого цвета по определённой матрице. Пользователь может сам задать свою матрицу, а может выбрать из предложенного списка:

1. Край.

2. Рельеф.

3. Смягчение.

4. Резкость.

5. Наклонное смазывание.

6. Радужный край.

7. Подтёкшие грани.

8. Скошенные грани.

9. Ветер.

10. Старый телевизор.

11. Сломанный телевизор.

12. Духи.

13. Полосы (русский сломанный телевизор).

Другие возможности.

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

Открывать изображения можно из файлов следующих форматов:

 точечный рисунок (*.bmp);

 Windows Metafile (*.wmf; *.emf);

 JPEG (*.jpg; *.jpeg).

Сохранять рисунок можно в форматах BMP (24 bit) и JPEG.

Аналоги.

Аналогичные программы естественно существуют: CorelDraw (Photo-Paint), Photoshop, Corel Painter, Gimp, Jasc Paint Shop Pro и т. д. Все они име-ют неплохие средства создания рисунков и множество эффектов. Но, на¬ряду с этим, они имеют большой размер (CorelDraw занимает около 300 МБ; Pho-toshop более 100 МБ), требуют установки и, в конце концов, стоят нема¬лых денег (за некоторым исключением, вроде Gimp). Так же для работы с этими приложениями необходимы определённые знания и умения, что делает их почти бесполезными в руках неопытных пользователей.

XnView – бесплатная небольшая программа (в дистрибутиве 1,23 МБ) для просмотра (и редактирования) файлов различных форматов. Для редак¬тирования изображений она предоставляет пользователю множество эффек¬тов, многие из которых идентичны эффектам программы Iso. Но, в отличие от Iso, XnView не располагает инструментами для создания рисунков. Iso не требует установки и находится в одном файле Iso.exe.

Paintbrush – стандартный графический редактор, входящий в пакеты операционных систем семейства Windows. Paintbrush один из самых простых и надежных редакторов. Эту программу изучают в школе. Но в то же время Paintbrush популярен в основном у пользователей дошкольного и школьного возраста из-за своей простоты и ограниченности в возможностях.

Iso является 'потомком' Paint, т. к. очень похож на него и внешним ви¬дом, и некоторыми возможностями, и названиями пунктов меню. Редактор Iso обладает множеством полезных возможностей, которых нет в Paint, со¬храняя малый размер (около 630 КБ), быстроту и простоту в использовании. Но, вместе с тем, Iso кое в чём уступает Paint: нет возможности печати, нет файла справки, меньшая надёжность (могут возникнуть ошибки), отсутствие сетки при масштабировании и т. п.

Среда программирования.

Программа Iso написана в среде программирования Delphi 5 Enterprise компании Borland, на языке Object Pascal. Object Pascal – это объективно-ориентированный язык программирования, который и является основой Del-phi. Он относится к языкам высокого уровня. Его родоначальник – язык Pas-cal.

Delphi – это визуальная среда программирования (Rapid Application De-velopment – RAD), которая включает в себя помимо компилятора ещё и ре-дактор, и средства отладки, и большие наборы готовых программ (так на¬зываемые библиотеки), например наборы математических функций. RAD-системы позволяют также быстро строить прототипы будущих программ: проектировать форму окон, размещать в них всевозможные элементы управ¬ления (кнопки, списки, переключатели).

С помощью Delphi 5 можно разработать приложение для Windows прак¬тически неограниченной сложности. Такая разработка несколько напоминает складывания программ из кубиков: в Delphi 5 имеется около двух сотен гото¬вых компонентов, которые размещаются в будущем окне одним щелчком мыши. Это значительно облегчает жизнь программистам: не нужно тратить много времени на создания интерфейса программы, а уделить внимание главному – функционированию. Но за такое удобство приходится платить: минимальные размер программы созданной с помощью RAD составляет око-ло 286 КБ, а без использования визуального программирования – 17 КБ. На сегодняшний день работа в Delphi является самым продуктивным мето¬дом создания приложений для Windows.

Структура программы.

Весь исходный текст программы очень большой (10000 строк), поэто-му он размещён в разных файлах, каждый из которых играет определённую роль в построении приложения. Основой всей программы является главное окно программы (класс TMainForm; файл MainFrm.pas). На нем расположены все панели инструментов, строка состояния, меню и сама область рисования, расположенная в рабочей области прокрутки. Некоторые элементы управле-ния – это стандартные компоненты Delphi (TMainMenu, TScrollBox, TScroll-Bar и т. д.), другие же – это переделанные компоненты (TFeSpeedButton, TFePanel, TFeStatusBar) с целью уменьшить размер исполняемого файла, тре-тьи – это специальные компоненты (TFePaint, TFePropsButton, TColorPicker-Button), созданные на основе базовых классов Delphi.

Ядром программы, отвечающим за создание и преобразование рисунков, является класс (компонент) TFePaint. Именно этот класс обрабатывает все действия мыши в области рисования, именно он организует взаимодействие пользователя и программы, связанные с рисованием и созданием эффектов. TFePaint является дочерним классом от TCustomControl, так как является владельцем для других классов (TFeImage, TSelectImage, TPut). Он имеет свойство DrawMethod типа TDrawMethod, которое указывает на инструмент, выбранный пользователем (dmPen, dmLine, dmEllipse, dmRectSelect). Изме-нение значения этого свойства происходит следующим образом: при запуске программы свойству Tag(этикетка) каждой кнопке на панели инструментов присваивается определённое значение:

PenBtn.Tag := Integer (dmPen);

LineBtn.Tag := Integer (dmLine);

При нажатии на кнопку вызывается обработчик события общий для всех кнопок на данной панели:

procedure TMainForm.SpeedBtnClick(Sender: TObject);

begin

MainRis.DrawMethod := TDrawMethod(TFeSpeedButton(Sender).Tag);

end;

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

procedure TMainForm.MenuClick(Sender: TObject);

begin

MainRis.Doing(TDrawAction(TMenuItem(Sender

←предыдущая следующая→
1 2 3 4 



Copyright © 2005—2007 «Mark5»