История: от J2ME к Windows (2005-2010)
Этот редактор изначально разрабатывался мною под Java2ME и на протяжении нескольких лет (уже года с 2005-2006) он развивался как бесплатная программа для рисования на мобильных телефонах.
Сначала он назывался Painter ("рисовалка" - первое что в голову пришло), затем он был переименован в PaintCAD по аналогии с AutoCAD, но никакой "автоматизации проектирования" в нем нет. PaintCAD это означает как бы "сверх-paint", paint с большими возможностями. В PaintCAD вы все делаете сами и он без спроса ничего делать не будет.
Поначалу молодой Паинткад рисовал черно-белые картинки размером 32х32 пикселя и сохранял в BMP-картинки и BMX-анимации (оба формата можно отправлять в SMSках расширенного формата (EMS). При этом было всего 4 инструмента: карандаш, черный маркер, белый маркер, обращающий маркер.
![Изображение](http://blackstrip.ru/tmp/painterscr.gif)
![Изображение](http://blackstrip.ru/tmp/painterscr2.gif)
![Изображение](http://blackstrip.ru/tmp/painterscr3.gif)
![Изображение](http://blackstrip.ru/tmp/painterscr4.gif)
Затем были добавлены другие инструменты, меню были переделаны в графические:
![Изображение](http://blackstrip.ru/tmp/paintcad1.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad2.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad3.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad4.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad5.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad6.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad7.gif)
Потом были добавлены возможности рисования 256-цветных рисунков (с палитрой цветов) размером до 48х48 пикселей (а чуть позже и размером с экран мобилы). А также полноценный графический файловый менеджер:
![Изображение](http://blackstrip.ru/tmp/paintcad8.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad9.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad10.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad11.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad12.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad13.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad14.gif)
![Изображение](http://blackstrip.ru/tmp/paintcad15.gif)
У меня был Siemens C60 с экраном 101х80 точек и 4096 цветов. И в паинткаде на С60 уже можно было рисовать такое:
![Изображение](http://blackstrip.ru/g/zakat.bmp)
![Изображение](http://blackstrip.ru/g/yad.bmp)
![Изображение](http://blackstrip.ru/g/les.bmp)
![Изображение](http://blackstrip.ru/g/more.bmp)
![Изображение](http://blackstrip.ru/g/noch.bmp)
Затем вышли телефоны с MIDP2 и в мобильной яве стало доступно больше оперативной памяти, и в редакторе стало можно рисовать рисунки размером с экран мобилы. А я купил себе Siemens CX75 с экраном 132х176 точек и цветностью 65536 цветов.
![Изображение](http://blackstrip.ru/g/snovales.gif)
![Изображение](http://blackstrip.ru/g/pustyr.gif)
![Изображение](http://blackstrip.ru/g/sumerki.gif)
![Изображение](http://blackstrip.ru/g/lygnik.gif)
![Изображение](http://blackstrip.ru/g/pterodac.gif)
![Изображение](http://blackstrip.ru/g/citystrt.gif)
![Изображение](http://blackstrip.ru/g/Peizag.gif)
![Изображение](http://blackstrip.ru/g/plamprivet.gif)
Также были добавлены возможности по сохранению GIF файлов, сборки из них GIF анимаций, работы с камерой мобильного телефона, использования собственных PaintCAD Font (PCF) шрифтов (их можно делать из Windows-шрифтов с помощью программы PaintCAD Font Creator http://blackstrip.ru/pcfc.exe 191 Кб ), и даже рисования этих шрифтов в самом паинткаде на мобиле.
Чуть позже вышли телефоны с экранами 240х320 и для таких разрешений (и программ под эти разрешения) у них было еще больше оперативной памяти в яве. А я себе купил Benq-Siemens E71 (и до сих пор с ним).
![Изображение](http://blackstrip.ru/g/EndOfEarth.gif)
С такими объемами памяти была мысль - пора бы перейти на 24-битное полноценное рисование. Чтобы не терять наработанное PaintCAD был разбит на два режима:
а) 8-битный старый режим для рисования 256-цветных (8 бит на точку) рисунков с палитрой (т.е. в каждом из 256 цветов палитры может быть любой из 16 миллионов RGB-оттенков, но всего их в палитре и на рисунке может быть только 256 штук).
б) 24-битный новый режим для рисования рисунков, в которых на каждую точку приходится 24 бита, и можно каждой точке задать свой RGB-оттенок, любой из 16 с лишним миллионов.
В 8-битном режиме легко рисовать 256-цветные GIF файлы, а т.к. в программе была добавлена возможность сборки анимаций из GIF-кадров - то можно было рисовать анимированные баннеры или просто анимации (таких анимаций и рисунков набралась целая галерея http://pg.blackstrip.ru );
В 24-битном режиме можно было рисовать полноцветные картинки, сохранять их в BMP и PNG файлы. Также некоторые энтузиасты делали программы на телефонном мобильном бейсике и рисовали в паинткаде графику для этих программ ( вот один из них: http://habrahabr.ru/post/82730/ ).
Конечно, мобильный редактор PaintCAD это была целая отдельная история длиной в 7 лет (она продолжается и по сей день). Но у него была одна особенность, к которой я постепенно привыкал, и из-за этого все больше отвыкал от компьютерных мышередакторов: во всех его версиях, начиная с первой, метод рисования был следующим - ручное управление курсором, двигающимся по экрану, с помощью клавиш мобильного телефона.
В 14-ти обычных клавишах телефона и 5-ти кнопках джойстика у мобильного паинткада были заключены все возможности редактора, включая рисование примитивов, применение эффектов, загрузка и сохранение файлов, рисование и использование пользовательских шрифтов, получение фотографий с встроенной камеры, сбор рисунков в GIF-анимацию. При этом любую дугу можно было рисовать полилинией, которую с клавиатуры очень легко расположить так как вам надо. Вместо "волшебной палочки" использовалось маскирование, где какой то из цветов на рисунке играл роль "прозрачного" или "информационного" (применение эффекта идет к объектам только этого цвета). Заливки, затекстуривания, эффекты также работали на "информационных" цветах и с использованием "прозрачных" цветов.
Еще одна подкупающая особенность - сложные (относительно сложные) настройки эффектов дробились на простые диалоговые окна "укажи цвет на рисунке", "укажи силу эффекта", "выбери степень прозрачности". В телефоне это разумно было делать, т.к. если на экране умещается шесть строк текста - то там не сделаешь сложных окон с флажками, списками опций, кнопками. Конечно, с годами, размеры экранов телефонов увеличились, но метод управления редактором оставался все тем же. Вот несколько скриншотов того, что было на телефоне в одной из последних версий:
Первое окно после запуска, Стартовый мастер, Главное меню:
![Изображение](http://blackstrip.ru/paint1.png)
![Изображение](http://blackstrip.ru/paint2.png)
![Изображение](http://blackstrip.ru/paint11.png)
Файловый менеджер, Инструменты, Настройка эффекта:
![Изображение](http://blackstrip.ru/paint7.png)
![Изображение](http://blackstrip.ru/paint4.png)
![Изображение](http://blackstrip.ru/paint8.png)
Применение эффекта, Система помощи, Процесс рисования:
![Изображение](http://blackstrip.ru/paint9.png)
![Изображение](http://blackstrip.ru/paint12.png)
![Изображение](http://blackstrip.ru/paint10.png)
И всегда оставалась мысль - а что если бы такой метод рисования и управления редактором сделать не на Java2ME, а в Windows? И вот я мечтал об этом с 2005 до 2010 года и, наконец, решился.
Здравствуй, Windows
И в апреле 2010 года было решено начать переносить все наработанное из Java в Windows. Было выбрано Delphi 7 (из-за этого без всяких Framework-ов PaintCAD работает как в Windows 95 (!), так и в Windows XP или Windows 7). Сначала он был такой:
![Изображение](http://blackstrip.ru/tmp/pcw1.png)
Потом такой:
![Изображение](http://blackstrip.ru/tmp/pcw7.png)
И такой:
![Изображение](http://blackstrip.ru/tmp/pc19m7.png)
Потом стало понятно что скоро эра Windows 8 и вообще сенсорных устройств (хотя конечно планшетная Windows 8 это совсем не то что комповская, но хоть под комповскую сделать бы). Пора бы делать что-то под сенсорный экран, кнопки побольше (вся верхушка переработана была), выдвижную виртуальную клавиатуру для управления курсором с экрана планшета (справа она).
![Изображение](http://blackstrip.ru/tmp/pc438vk.jpg)
Виртуальная клавиатура имеет тип "встроенного телефона", т.к. управление с нее осуществляется подобно управлению мобильным паинткадом с телефона (пальцами правой руки на сенсорном экране).
По умолчанию горизонтальное меню скрыто, а также скрыта виртуальная клавиатура. При запуске на устройствах с сенсорным экраном управление редактором следующее:
![Изображение](http://s019.radikal.ru/i625/1203/d6/4d0a907f6c4c.jpg)
Диалоговые окна PaintCAD выглядят достаточно просто и в каждом из них "понятно что спрашивают", у каждого окна внизу зеленая полоса с кнопками окончательного действия (как в мобильной версии подписи под софт-клавишами были):
а) палитра. Здесь выбирают цвета - три разных типа палитры:
из таблицы:
![Изображение](http://blackstrip.ru/tmp/pcws/pal1ru.gif)
По спектру (цветность и яркость):
![Изображение](http://blackstrip.ru/tmp/pcws/pal2ru.gif)
И по RGB-значениям:
![Изображение](http://blackstrip.ru/tmp/pcws/pal3ru.gif)
б) инструменты, эффекты и меню выделения и буфера обмена:
![Изображение](http://blackstrip.ru/tmp/pcw4.png)
в) меню дополнительных эффектов и другие подобные строчные меню:
![Изображение](http://blackstrip.ru/scrs/pcw/ru/pcw3.png)
г) выбор в меню из двух пунктов (простой диалог):
![Изображение](http://blackstrip.ru/tmp/pcws/optwinru.jpg)
д) выбор силы эффекта (простой диалог с одним движком):
![Изображение](http://blackstrip.ru/tmp/pcws/fewinru.jpg)
е) и выбор сразу трех значений
![Изображение](http://blackstrip.ru/tmp/pcws/rgbwinru.jpg)
ж) выбор трех значений из строго заданных вариантов:
![Изображение](http://blackstrip.ru/tmp/pcws/excwinru.jpg)
з) выбор двумерного смещения:
![Изображение](http://blackstrip.ru/tmp/pcws/offswinru.jpg)
и) выбор угла поворота:
![Изображение](http://blackstrip.ru/tmp/pcws/rotwinru.jpg)
к) выбор цвета:
![Изображение](http://blackstrip.ru/tmp/pcws/colwinru.jpg)
л) создание нового файла (с кнопками для сенсорных экранов):
![Изображение](http://blackstrip.ru/tmp/pcws/newfilewinru.jpg)
м) ввод текста (для последующей вставки на рисунок):
![Изображение](http://blackstrip.ru/tmp/pcws/textinputru.jpg)
и сама вставка текста на рисунок с выбором опорной точки и нескольких опций:
![Изображение](http://blackstrip.ru/tmp/pcws/textpasteru.jpg)
или вставка картинки:
![Изображение](http://blackstrip.ru/tmp/pcws/winpasteru.gif)
н) окно съемки видео и фото с веб-камеры или тв-тюнера
![Изображение](http://blackstrip.ru/tmp/pcws/vidwinru.gif)
о) окно об ошибке
![Изображение](http://blackstrip.ru/tmp/pcws/errwinru.gif)
Каждый из этих диалогов легко управляется с клавиатуры, хотя также можно управлять мышью, ну или тыкать стилусом или пальцем прямо в экран. Тут в них думать нечего, хотя в системе помощи (она прилагается в rar-архиве с программой) все описано еще более подробней.
Возможности PaintCAD
В редакторе PaintCAD 4Windows, как и мобильном редакторе, можно рисовать в двух режимах: 24-битный (16 миллионов с лишним цветов) и 8-битный (8 бит на точку, т.е. 256 цветов с палитрой, каждый из 256 цветов может содержать свои RGB-компоненты). В дальнейшем 8-битный режим планируется развить, сделать таки сохранение в GIF и сборку анимации из GIF кадров (пока есть сборка AVI анимаций из BMP/JPG кадров). Также планируется внедрить использование и создание PCF-шрифтов (как в мобильной версии).
На данный момент в PaintCAD 4Windows уже можно:
- использовать ТОЛЬКО клавиатуру при рисовании, мышь почти не нужна (только разве выбрать файл в диалоге сохранения/загрузки файлов);
- для фанатов мыши: можно использовать только мышь;
- рисовать графические примитивы, текст;
- использовать массу встроенных эффектов: цветность, яркость, контрастность, гамма, цвет, 3D, огранка, градиент, сглаживание, обрисовка, тень, свечение, звезды, жара, снег, пламя, адский огонь, возгорание по траектории, сепия, серость, рельеф, резкость, глюки, спрей, термо, цветозамена, обмен каналов, черно-белый (с каждой новой версией их будет всё больше);
- увеличивать малоцветные изображения "без потери качества" (ну почти без, с помощью эффекта "Расширитель");
- заливать нарисованные объекты с помощью текстуры;
- быстро рисовать анимации на устройствах со стилусом: внизу главного окна на панели есть кнопки быстрого переключения кадров, сохраняющие в текущую папку кадры с именами 1.bmp, 2.bmp, 3.bmp и т.д., и позволяющие быстро переключиться к следующему кадру, сохранив предыдущий, а также сравнивать предыдущий кадр со следующим (с помощью функции "компаратора");
- использовать веб-камеру (или тв-тюнер) для съемки одиночных кадров;
- использовать веб-камеру для съемки видео:
а) в автоматическом режиме (снимать видео до 10 кадров в секунду или реже, можно снимать редко кадры и потом собрать ускоренное видео как за последние 6 часов пролетали облака или распускался цветок);
б) в ручном режиме - кадры по команде (можно снимать свои мультфильмы: пластилиновые, кукольные и др.);
- снятые кадры или нарисованные картинки можно собирать в AVI-видеофайл с выбором кодека;
- обрабатывать пачки кадров выбранными эффектами.
Работа в редакторе со всеми этими функциями очень подробно описана (с картинками и примерами!) в файле помощи, который в архиве лежит вместе с программой по ссылке http://blackstrip.ru/pcw.rar (по этому адресу всегда лежит самая последняя версия PCW).
PaintCAD хорошо подходит как для рисования и правки схем или рисунков, так и для пиксель-арта, а также для рисования компьютерных "картин", над которыми можно корпеть несколько дней или недель.
Он наверняка не понравится любителям быстро махать мышкой в фотошопе применяя десятки обработок одним кликом и получая в результате бездушную компьютерную картинку. Он понравится тем, кто любит "медитировать" при рисовании.
Вот такой получился графический редактор (или даже "программа для рисования").
Приятного Вам рисования.
p.s. если она у Вас словит ошибку, то в окне с ошибкой нажмите Enter - паинткад сам перезапустится и подгрузит почти все настройки плюс рисуемую картинку и внутренний буфер, и даже поставит курсор в то же место, в котором он был до возникновения ошибки. Такая система защиты от сбоев.
p.p.s. в программе есть система обновлений: следите за обновлениями, т.к. ошибки будут исправляться, эффекты - добавляться, а программа - развиваться.