PaintCAD для Windows - журнал разработки

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Сб окт 01, 2016 11:52 am

Кто занимается записью звука с микрофона через mciSendString, знайте, что параметр alignment обязательно надо указывать, иначе 8-битный звук пишет, а 16-битный отказывается писать, хоть alignment и рассчитывается по другим параметрам, все равно mciSendString хочет чтобы вы посчитали alignment за него =)

Бета 1.3.4.1142 доступна по ссылке http://blackstrip.ru/paintcad.exe

Изменения:
- Qmpot: исправлена ошибка записи звука после смены формата звука на 16-битный

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Пн ноя 14, 2016 12:22 am

Бета 1.3.4.1144 доступна по ссылке http://blackstrip.ru/paintcad.exe

Изменения:
- меню команды "Экстра"-"Сохранить проигрываемую мелодию в MID" (Alt+P) теперь запоминает последний выбранный пункт
- сохранение файлов: добавлен новый формат HTM для сохранения рисунка в HTM-страницу на div-слоях

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Сб янв 14, 2017 11:40 pm

Бета 1.3.4.1145 доступна по ссылке http://blackstrip.ru/paintcad.exe

Исправления ошибок:
- исправлен ошибочный пропуск окон указания цвета с рисунка/буфера при заранее нажатой клавише Enter/Esc

А также: доработано сохранение рисунка в HTM-страницу на div-слоях. Итак, теперь оно работает так:

1) Открываем мелкий рисунок (можно и большой, но тогда получившийся HTM будет много весить).

Изображение

2) Вызываем сохранение в HTM в меню

Изображение

или в общем меню по Ctrl+S

Изображение

3) Выбираем имя файла

Изображение

4) Выбираем прозрачный цвет. Можно пропустить, сразу нажав Enter. А можно указать, тогда пиксели этого цвета не будут вставлены в HTM.

Изображение

5) Выбираем размеры "пикселей" в HTM в реальных пикселях. Можно выбрать кривые пиксели, например, 4х3 (удлиненные по горизонтали).

Изображение Изображение

6) Получаем HTM с "картинкой" на слоях (div-тегах). Причем длинные строки пикселей одного цвета сжимаются в один слой.

Изображение

Вот, можно посмотреть вживую на эту "картинку": http://blackstrip.ru/tmp/pcw140/setupicon.htm

Внутри нее много разноцветных слоев с абсолютным позиционированием. Вот html-код первых четырех строк пикселей получившейся htm-картинки:

Код: Выделить всё

<div style="position:absolute; left:0px; top:0px; width:40px; height:3px; background-color:#FFFFFE; clip:rect(0,40px,3px,0);"></div>
<div style="position:absolute; left:40px; top:0px; width:72px; height:3px; background-color:#808080; clip:rect(0,72px,3px,0);"></div>
<div style="position:absolute; left:112px; top:0px; width:16px; height:3px; background-color:#FFFFFE; clip:rect(0,16px,3px,0);"></div>
<div style="position:absolute; left:0px; top:3px; width:36px; height:3px; background-color:#FFFFFE; clip:rect(0,36px,3px,0);"></div>
<div style="position:absolute; left:36px; top:3px; width:4px; height:3px; background-color:#808080; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:40px; top:3px; width:64px; height:3px; background-color:#C0C0C0; clip:rect(0,64px,3px,0);"></div>
<div style="position:absolute; left:104px; top:3px; width:4px; height:3px; background-color:#FFFFFF; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:108px; top:3px; width:4px; height:3px; background-color:#808080; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:112px; top:3px; width:4px; height:3px; background-color:#000000; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:116px; top:3px; width:12px; height:3px; background-color:#FFFFFE; clip:rect(0,12px,3px,0);"></div>
<div style="position:absolute; left:0px; top:6px; width:32px; height:3px; background-color:#FFFFFE; clip:rect(0,32px,3px,0);"></div>
<div style="position:absolute; left:32px; top:6px; width:4px; height:3px; background-color:#808080; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:36px; top:6px; width:68px; height:3px; background-color:#FFFFFF; clip:rect(0,68px,3px,0);"></div>
<div style="position:absolute; left:104px; top:6px; width:8px; height:3px; background-color:#808080; clip:rect(0,8px,3px,0);"></div>
<div style="position:absolute; left:112px; top:6px; width:4px; height:3px; background-color:#000000; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:116px; top:6px; width:12px; height:3px; background-color:#FFFFFE; clip:rect(0,12px,3px,0);"></div>
<div style="position:absolute; left:0px; top:9px; width:28px; height:3px; background-color:#FFFFFE; clip:rect(0,28px,3px,0);"></div>
<div style="position:absolute; left:28px; top:9px; width:4px; height:3px; background-color:#808080; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:32px; top:9px; width:4px; height:3px; background-color:#FFFFFF; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:36px; top:9px; width:68px; height:3px; background-color:#C0C0C0; clip:rect(0,68px,3px,0);"></div>
<div style="position:absolute; left:104px; top:9px; width:8px; height:3px; background-color:#808080; clip:rect(0,8px,3px,0);"></div>
<div style="position:absolute; left:112px; top:9px; width:4px; height:3px; background-color:#000000; clip:rect(0,4px,3px,0);"></div>
<div style="position:absolute; left:116px; top:9px; width:12px; height:3px; background-color:#FFFFFE; clip:rect(0,12px,3px,0);"></div>
Такую картинку можно запихать еще в один div, а уже этот родительский div поместить в любое место на странице сайта. Она хранится целиком в HTML-коде страницы и показывается даже при отключенном показе изображений и отключенном Java-script!

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows - журнал разработки

Сообщение blackstrip » Вт май 15, 2018 1:05 pm

Год ушел на разработку DOS оболочки BlackStrip Shell. И вот теперь в процессе освоения области игростроя возвращаемся к разработке PC4W.

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

Первые функции в новых бета-версиях уже скоро. Также в планах развитие 3D редактора Hippo.

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows - журнал разработки

Сообщение blackstrip » Сб май 26, 2018 8:10 am

Бета 1.4.0.1156 доступна по ссылке http://blackstrip.ru/paintcad.exe
Интерфейс:
- ускорено пропадание стартового окна с названием программы с экрана
- функция "Случайная позиция курсора (Ctrl+R)" переименована в "Случайная позиция курсора (в выделении) (Ctrl+R)" и перенесена из меню "Команды" в новое меню "ГСЧ"

Новые функции:
- открытие файлов в 24bpp: добавлен двоичный режим открытия ???-файлов с загрузкой байтов как пикселей (1, 3 или 4 байта на точку)
- в главное меню добавлено новое меню "ГСЧ" для функций рисования и управления редактором с использованием генератора случайных чисел
- в меню "Утилиты"-"Обработка BMP/JPG кадров"-"Пакетная обработка" добавлен вариант обработки "ГСЧ", применяющий к каждому кадру "Случайное рисование" с текущими настройками ГСЧ

Исправления ошибок:
- убрана привязка exe-файла paintcad к directx-библиотеке d3d8.dll (планировалось ее использование для 3D редактора Hippo)
Итак, первое нововведение - открытие двоичных файлов как картинок в 24-битном режиме. Можно искать несжатые картинки в файлах ресурсов старых игр и внутри любых файлов.

1) Жмем Ctrl+O и выбираем новый пункт открытия в двоичном режиме.

Изображение

2) выбираем двоичный файл. Например, в конце многих exe и dll бывают ресурсы в виде иконок. Покажу на их примере. Открываем виндовский notepad.exe, у него есть иконка блокнота в конце.

Изображение

3) выбираем цветность. У EXE-файлов иконки лежат внутри в виде нескольких картинок друг за другом разного размера и разной цветности (кто разными прогами типа Restorator их доставал, тот видел это), но у современных EXE среди них должны быть и картинки 4-байта на точку (R,G,B,альфа). Выбираем 4 байта на точку.

Изображение

4) выбираем смещение. Если точки в файле записаны как R,G,B,a,R,G,B,a,R,G,B,a, то если паинткаду повезет и байт R попадется первым - то цвета будут восстановлены корректно. Если же нет, можно указать дополнительное смещение размером 1, 2 или 3 байта, от этого будет зависеть какие цвета будут считаны как пиксель
R,G,B,a,R,G,B,a,R,G,B,a
или
R,G,B,a,R,G,B,a,R,G,B,a
или
R,G,B,a,R,G,B,a,R,G,B,a
или
R,G,B,a,R,G,B,a,R,G,B,a

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

Пока вводим смещение 0 байт. Читаем файл с самого начала.

Изображение

5) Видим файл в виде набора точек. Он автоматически размазывается по картинке текущего размера. Смотрим повторяющиеся строки пикселей. В нижних строках пикселей они видны. Можно померить инструментом "линия" ширину такой одной строки - это и есть ширина картинки.

Изображение

6) Но в случае с иконками я знаю что гарантировано там есть, скорее всего, 32х32 пикселя значок. Теперь создадим новый файл размером 32 пикселя по ширине и побольше, например 10000 пикселей, по высоте. И снова загрузим notepad.exe, размазав его по нашей 32х10000 пикселей картинке в виде "R,G,B,x" 4 байта на точку.

Изображение

Вот она иконка. Но т.к. порядок цветов в этой иконке изменен - она не синяя, а желтая. Вызываем Эффекты - Доп.Эффекты - Обмен каналов и меняем R на B, а B на R. И она станет синяя, как у блокнота и должно быть.

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

Например, в другой библиотеке shell32.dll с иконками в конце - можно увидеть иконки 48х48 пикселей (тоже каналы надо поменять R на B, а B на R обменом каналов как описано выше и потом еще картинку отразить сверху-вниз).

Изображение

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

Также можно использовать загрузку в виде 1 байта на точку (байт 0 превращается в RGB=0;0;0 пиксель, байт 255 превращается в RGB=255;255;255 пиксель, промежуточные значения 0-255 - в соответствующие серые оттенки) и получать необычные картинки, как будто в видеобуфер записали код exe-файла и его выбросило на экран. Вот, например, explorer.exe со смещения 2 миллиона байт на картинке 640х480 пикселей.

Изображение

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

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows - журнал разработки

Сообщение blackstrip » Сб май 26, 2018 8:58 am

Но для еще большего вдохновения перед рисованием картинок и для получения идей для рисования в версии 1.4.0 добавлено новое меню ГСЧ (генератор случайных чисел), позволяющее проводить случайное рисование картинок из выбранных фигур и действий (случайный цвет ПЦ, случайное выделение на рисунке, случайная толщина линий и т.д.).

1) вот само меню

Изображение

2) самый интересный пункт "Случайное рисование" - вызывает меню с настройками рисования с помощью ГСЧ. Его также можно вызвать по Ctrl+Shift+R.

Изображение

Можно сохранить и загрузить настройки (чтоб потом использовать повторно понравившиеся комбинации выбранных фигур и опций).

Можно выбрать конкретные инструменты (нажав Enter), тогда слева от инструмента появится X (если выбрали) или скроется (если убрали). Пунктами "Выбрать все" и "Снять все" можно проделать это со всеми инструментами сразу.

3) выбираем Enter-ом функции ПЦ (случайно выбирать цвет ПЦ), Линия (случайно рисовать линию на рисунке), Толщина линий (случайно выбирать толщину линий)

Изображение

4) переходим в самый низ этого меню. Здесь можно выбрать диапазон случайных значений толщины линий, нажав Enter на соответствующем пункте (по умолчанию стоит от 1 до 10 пикселей). Также можно выбрать количество "колен" полилинии (но мы ее не выбрали среди инструментов, поэтому сейчас это не на что ни повлияет).

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

И в конце надо нажать "РИСУЙ!"

Изображение

5) Случайное рисование проходит 10 итераций и вот что получилось: разноцветные случайные линии разной толщины и цвета (как заказывали).

Изображение

Если результат не устраивает, то можно нажать Ctrl+Z (отменить случайное рисование), потом Ctrl+Shift+R (снова открыть меню случайного рисования) и там нажать Enter (снова вызвать последний выбранный пункт "РИСУЙ!"). И увидеть другую картинку, отрисованную по выбранным правилам.

6) Усложним задачу. Выбираем все опции по "Выбрать все", потом
- убираем ЗЦ (он был добавлен в меню в расчете на "случайные эффекты", но пока такой функции нет, можно только случайные инструменты вызывать, и от этого случайный выбор ЗЦ бесполезен кроме как для просто случайного выбора Заднего цвета),
- убираем Заливку
- убираем Заливку 2

Изображение

И сможем получить случайный набор разноцветных фигур.

Жмем Enter в поле "Выполнить (раз)" и указываем 50 раз вместо 10.

Изображение

И вызываем "РИСУЙ!" для запуска случайного рисования. И вот какие рисунки получаются и какие идеи для рисования можно почерпнуть из них (это прямо как картинки у психолога "а что вы видите на этой картинке?").

Драка в комнате, дверь на заднем плане, один человек (справа) бьет чем то прямоугольным другого (слева) по голове. Беспорядок, сломанная мебель.
Изображение

Человек стоит у окна и смотрит на улицу, а там кипарис (или тополь) и другое дерево, по небу летит облако.
Изображение

Огромный дирижабль терпит катастрофу посреди большого города с небоскребами, тень от дирижабля закрыла улицы, он вот-вот упадет прямо на дорогу (и взорвется конечно же)
Изображение

Теперь можно не брать идеи из головы (где можно случайно почерпнуть уже увиденное когда-то и таким образом сплагиатить это), а получить их случайно и не бояться за авторские права =)

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows - журнал разработки

Сообщение blackstrip » Вт май 29, 2018 11:27 pm

Бета 1.4.0.1157 доступна по ссылке http://blackstrip.ru/paintcad.exe

Новая команда "Итерация случайного рисования" (сочетание клавиш Ctrl+Alt+R) позволяет выполнить одну итерацию случайного рисования в соответствии с предварительно выбранными в меню Случайного рисования (по Ctrl+Shift+R) настройками. Теперь можно не задавать четкое количество итераций, а просто зажать Ctrl+Alt+R и наблюдать пока случайная картинка сама дойдет до нужного состояния.

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows - журнал разработки

Сообщение blackstrip » Вс июн 03, 2018 9:29 am

Бета 1.4.0.1159 доступна по ссылке http://blackstrip.ru/paintcad.exe

Добавлено больше форматов загрузки двоичных файлов как картинок.

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1020
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows - журнал разработки

Сообщение blackstrip » Чт июн 14, 2018 11:59 pm

Бета 1.4.0.1162 доступна по ссылке http://blackstrip.ru/paintcad.exe

Доп.эффект "Черно-белый" теперь имеет настройку количества градаций цветов.

Изображение

Оригинал:
Изображение

2 градации:
Изображение

3 градации:
Изображение

5 градаций:
Изображение

9 градаций:
Изображение

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей