Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Рекомендуемые сообщения

PaintCAD 4Windows

pcwru.png

Разработчик: BlackStrip Studios

Домашняя страница: http://blackstrip.ru

Минимальные системные требования

ОЗУ: 64 Мб
Разрешение экрана: 800x600
ОС: Windows 95,98,2000,ME,XP,Vista,7,8,10
Internet Explorer 4.0 или новее

Размер: 14 Мбайт

Скачать (по любой из ссылок):

EXE-архив ZIP-архив RAR-архив 

Описание

Мультимедиа-редактор, включающий в себя:
- графический редактор (BMP, JPG, PNG c альфа-каналом, 256-цветные GIF рисунки/анимации, стерео-анаглиф/стереопара, а также MPO/JPS стереоизображения для 3D телевизоров/мониторов, программируемая графика/анимация на JavaScript, создание/редактирование/использование растровых PCF шрифтов при рисовании), 
- покадровый видео-редактор (AVI с возможностью добавления WAV озвучки), 
- музыкально-звуковой редактор (WAV звуковые файлы, программируемый редактор звуковых/музыкальных скриптов),
- а также набор сопутствующих модулей.

Подходит для:
- обычной графики: рисования BMP, JPG, PNG изображений (с альфа-каналом прозрачности),
- малоцветной графики: рисования 256-цветных GIF изображений и сборки GIF анимаций из отдельных GIF кадров, работы с 256-цветной индексированной палитрой,
- стереографики: создания и редактирования стереоизображений (3D стереоформаты: MPO и JPS),
- программируемой графики: работы в модуле Scriptaint на языке Java Script,
- работы с растровыми шрифтами: рисования собственных и редактирования сторонних PCF растровых шрифтов, написания текстов этими шрифтами на изображениях,
- видео: покадровой анимации и AVI видеомонтажа с запаковкой кодеками, съёмки фото и видео с веб-камеры,
- звука и музыки: создание WAV озвучки для видео или иных целей во встроенном модуле Qmpot с возможностью написания музыкально-звуковых QMP скриптов, записи в скрипт в реальном времени команд при игре на клавиатуре как на фортепиано, автоматическое сочинение мелодий во встроенном модуле Muzz с возможностью выбора оттенка (грустная/веселая) и характеристик (темп, размер, количество куплетов, припевов, проигрышей) с последующим сохранением сочиненного в MID-мелодии/QMP-скрипты.

Видео о процессе рисования

https://www.youtube.com/watch?v=_VuNOkaiG9E

Основные сочетания клавиш

tutpcwru.png

Дополнительные скриншоты встроенных модулей

Покадровый видеоредактор

fseqru.png

Программирование графики/анимации на Java Script с автоэкспортом полученных кадров в файлы

scripwinru.gif

Редактор 2D тайловых карт

mosaicru.png

Программируемый звуковой редактор

qmpru.png

Система "Ввод нот"

позволяющая "играть" на фортепиано, 6-тиструнной гитаре и барабанах с экспортом результатов в скрипт для редактора выше, а также записывать в реальном времени игру на фортепиано с компьютерной клавиатуры

qmp2ru.png

qmp3ru.png

qmp4ru.png

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

А описание Scriptaint есть? Или где можно почитать?

Меня интересует покадровый видеоредактор с возможностью программирования анимации изображения. Я пробовал присобачить тоже в Дельфи Берлин FireMonkey с 3D объектами, но очень мало в интернете внятного описания FM. Даже у Эмбаркадеро описание типа "TModel3D это компонент для трехмерных моделей". Ну очень информативно.

Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Teddy_Bear сказал:

А описание Scriptaint есть? Или где можно почитать?

Меня интересует покадровый видеоредактор с возможностью программирования анимации изображения. Я пробовал присобачить тоже в Дельфи Берлин FireMonkey с 3D объектами, но очень мало в интернете внятного описания FM. Даже у Эмбаркадеро описание типа "TModel3D это компонент для трехмерных моделей". Ну очень информативно.

В системе помощи паинткада (F1) в разделе "Экстра" есть описание скриптаинта.

scriphelp.thumb.png.75904ddb8cee6d1718a01b047fcb0047.png

Но если вкратце описать - это обычный TWebBrowser, запускающий HTM файл со скриптом. Есть шаблоны готовые при создании нового скрипта (Ctrl+N) в скриптаинте. Вот они в окошке:

scriptempl.png.a1ffbc527cfc93810fcf3c647c2341b4.png

Вот выбираем там "DIV (пример анимации)" и создается готовый скрипт, у него есть функции отрисовки тегами DIV кучи фигур (линии, круги, прямоугольники), а также обычного текста и картинок в <img> тегах. Кроме того, там есть часть функций управляющих и основной код в самом низу:

function flushcode() {
document.getElementById('content').innerHTML=codestr;
}

function cls() {
codestr='';
flushcode();
}

function req(s) {
document.title=s;
}

//code start
function showframe() {
cls();
circle((curframe-1)*18,50,(curframe-1)*18+30,80,rgb(255,0,0),1,1);
flushcode();
req('pb '+Math.floor(curframe*100/framecount));
setTimeout(function() {saveframe();},framedelay/2);
}

function saveframe() {
if (savingframes==1) req('savebmp '+curframe+'.bmp');
curframe++;
if (curframe<=framecount) {setTimeout(function() {showframe();},framedelay/2);} else {if (savingframes==1) alert('BMP-кадры были сохранены в папке рядом с HTM-файлом скрипта');};
}

req('setsize w=200 h=200');
codestr='';
savingframes=1;
curframe=1;
framecount=10;
framedelay=1000;
setTimeout(function() {showframe();},framedelay/2);
//code end

Если сохранить этот HTM скрипт по Ctrl+S куда нибудь, а потом запустить его по F5, то по очереди с шагом 1000 миллисекунд (framedelay) покажет 10 кадров (framecount) и сохранит их в BMP файлы в папку рядом с сохраненным HTM скриптом (т.к. включено savingframes=1). 

Общение скрипта со скриптаинтом идет через заголовок страницы (document.title), в который записываются разные команды (через функцию req). Например, сначала пишется туда "setsize w=200 h=200" - это значит 200х200 пикселей будет картинка/анимация. А потом каждый кадр в заголовок страницы пишется "savebmp номер_кадра.bmp", и скриптаинт скидывает снимок TWebBrowser-а в BMP файл на диск в папку, где сохранен текущий HTM скрипт.

Т.к. готовый шаблон уже есть, то пользователю остается поправить сколько кадров будет (framecount=...), выбрать задержку (framedelay=1000 - это много, но если сделать слишком мало и кадр не успеет отрисоваться, то будут проблемы с сохранением, поэтому задержку можно сделать поменьше, но не сильно, зависит от сложности отрисовываемого кадра) и, самое главное, вписать в функцию showframe команды отрисовки кадра в зависимости от текущего номера кадра, хранящегося в переменной curframe. Сначала в шаблоне код отрисовки в showframe состоит из 3 команд:

cls(); - очистить "экран" (стереть переменную с кодом рисовки)

circle((curframe-1)*18,50,(curframe-1)*18+30,80,rgb(255,0,0),1,1); - отрисовать круг, вписанный в прямоугольник с координатами X1=(curframe-1)*18, Y1=50, X2=(curframe-1)*18+30, Y2=80, красного цвета rgb(255,0,0) с толщиной линии 1 (а последний параметр, еще одна 1 - это лишний походу, в шаблон случайно попал)

flushcode(); - скинуть переменную с кодом на отрисовку

Стираем это и пишем любые другие команды, можно например заранее рядом со скриптом положить кадры анимации идущего человека под именами man1.bmp, man2.bmp, man3.bmp, man4.bmp и отрисовывать кадры, вытаскивая их по имени (1 + ((curframe-1) % 4)) - будет в 1 кадре man1.bmp, во втором man2.bmp, в третьем man3.bmp, в четвертом man4.bmp, в пятом снова man1.bmp, в шестом man2.bmp и т.д. А координаты анимации менять. Для примера в помощи по F1 расписан скрипт с журавлями на 50 кадров, вот он:

//code start
function showframe() {
cls();
fillrect(0,0,199,199,rgb(0,128,255));
imgout('ptica\\pt'+(1+(curframe%3))+'.png',-35+curframe*7,Math.floor(150+Math.sin(2*Math.PI*0.1*curframe+7*Math.PI/8)*6));
imgout('ptica\\pt'+(1+(curframe%3))+'.png',-35+curframe*6,Math.floor(100+Math.sin(2*Math.PI*0.1*curframe)*10));
imgout('ptica\\pt'+(1+(curframe%3))+'.png',-35+curframe*5,Math.floor(50+Math.sin(2*Math.PI*0.1*curframe+Math.PI/4)*8));
imgout('cloud\\cloud'+(1+Math.floor(curframe/5)%2)+'.png',230-curframe*10,30);
imgout('cloud\\cloud'+(1+Math.floor(curframe/5)%2)+'.png',200-curframe*10,80);
imgout('cloud\\cloud'+(1+Math.floor(curframe/5)%2)+'.png',250-curframe*10,130);
if (curframe<25) {
textoutframe('Scriptaint',Math.floor(Math.sin(2*Math.PI*0.05*curframe)*2),200-curframe*2,199+Math.floor(Math.sin(2*Math.PI*0.05*curframe)*2),(200-curframe*2)+100,rgb(255,160,0),'Tahoma',30,'bold','italic','center');
} else {
textoutframe('Scriptaint',-8*(curframe-25),150,199-8*(curframe-25),150,rgb(255,160,0),'Tahoma',30,'bold','italic','center');
}
flushcode();
req('pb '+Math.floor(curframe*100/framecount));
setTimeout(function() {saveframe();},framedelay/2);
}

function saveframe() {
if (savingframes==1) req('savebmp '+curframe+'.bmp');
curframe++;
if (curframe<=framecount) {setTimeout(function() {showframe();},framedelay/2);} else {if (savingframes==1) alert('BMP-кадры были сохранены в папке рядом с HTM-файлом скрипта');}; }

req('setsize w=200 h=200');
codestr='';
savingframes=1;
curframe=1;
framecount=50;
framedelay=1000;
setTimeout(function() {showframe();},framedelay/2);
//code end

Вот результат работы скрипта:

scripttrans.gif

з.ы. полученные BMP можно конвертнуть в GIFы

conv1.png.0bfa4839d69f6a2587be4938c7bb4a6f.png

и потом собрать в анимацию с указанием задержек между кадрами

conv2.png.8c120d6bfd337d27210cece07be324af.png

 

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо за подробный ответ.

А можно просветить по поводу наложения рисунков на попиленное по кадрам снятое видео и последующую сборку опять в видео?

Обязательно попробую в любом случае.

Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

12 часа назад, Teddy_Bear сказал:

Спасибо за подробный ответ.

А можно просветить по поводу наложения рисунков на попиленное по кадрам снятое видео и последующую сборку опять в видео?

Обязательно попробую в любом случае.

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

vid1.png.5962d7c6a8c1790508bab0ce7cd1c337.png

Выбираем AVI-файл

vid2.png.3d0c33ced4d44c123fd76c6ec6906312.png

Видим все кадры видео. Жмем "Пробел" на первом кадре (начать выделение).

vid3.png.a50c2c545deb2db7aa8faa3c7409cf90.png

Для перехода на последний кадр жмем Перейти (G) или просто G на клавиатуре и выбираем "На последний кадр анимации".

vid4.png.b27632925df117af7f6838b50ae68e64.png

На последнем кадре снова жмем "Пробел". Выделили все кадры, которые хотим извлечь. (в принципе, можно выделить не все видео, а только кусок, если нужно).

vid5.png.093852d1be26bde4d7fe14c6e77c9444.png

Жмем "Слить кадры (S)" (или S на клавиатуре), выбираем формат кадров (BMP или JPG)

vid6.png.ffe19ef94e7d34985eb406ee4fd92c0c.png

И выбираем номер файла первого кадр, если выбрать 1 - то первый кадр будет сохранен как 1.bmp, второй как 2.bmp и т.д. (в окошке кнопки 1-9, backspace и очистка - это для сенсорного экрана).

vid7.png.daafdb2d3a3d87d08794405460c7b9bc.png

В окне с линейкой кадров пробегает полоска разборки - и у вас рядом с AVI-файлом образуются куча файлов-кадров (именно поэтому рекомендуется положить AVI-видео в отдельную пустую папку).

vid8.png.2abf0e724cf0ac25d1160d20f6129fbb.png

Можно всю эту кучу файлов переместить в подпапку, например, backanim. Дальше делаете скрипт в скриптаинте и там как в примере с птицам указываете первой командой req('setsize w=размер_видео_по_x h=размер_видео_по_y');

Также указываете количество кадров вашего разобранного видео: framecount=колво_кадров;

В самой процедуре отрисовки ставите на фон ваши кадры, а после команды отображения фона вставляете хоть птиц, хоть текст, хоть другие картинки любые:

//code start 
function showframe() { 
cls(); 
imgout('backanim\\'+(curframe)+'.bmp',0,0); 
//сюда добавить любые команды отрисовки того, что захочется нарисовать поверх i-того кадра видео
flushcode(); 
req('pb '+Math.floor(curframe*100/framecount)); 
setTimeout(function() {saveframe();},framedelay/2); 
}

И выполняете этот скрипт по F5, получая кадры с нарисованным поверх, как было описано выше в предыдущем посте. В корневой папке рядом с htm-скриптом появятся 1.bmp, 2.bmp и др. кадры полученного видео с наложенными картинками, а кадры исходного видео лежат в это время в папке backanim.

Ну а потом собираем все командой сборки кадров в AVI:

vid9.png.1a39f507e5826c29327910c15261f986.png

Выбираем сколько кадров в секунду хотим:

vid10.png.1e450a6057a5e0da98986b16b878770d.png

И кодек (запаковщик видео)

vid11.png.f7e0063ea33c0264b7695a09eba6b4dc.png

По окончании сборки кадров в видео в папке рядом с файлами кадров появится result.avi - это собранный видео-файл.

Если у видео была озвучка и хотелось бы ее перенести в новое видео, то ее можно извлечь из исходного видео в виде WAV-файла (он появится в папке рядом с AVI-файлом):

vid12.png.e642155b2d69c1d95bf6f98fc81dcff7.png

И соседней командой в этом же меню "Добавить/заменить WAV-аудио в AVI-видео" прикрепить этот WAV-файл озвучки к новому видео (указав WAV-файл озвучки и новое беззвучное AVI-видео).

p.s. помимо простого сбора AVI из кадров можно предварительно их обработать в окне видеомонтажа "Просмотр кадров" простыми обработками.

vid13.png.193f0761f3e2186f947bae2f11c977a7.png

Например, стоп-кадр сделать, откопировать кусок последовательности кадров из одного места в другое, сдвинуть последовательность, растянуть/сжать по времени и т.д.). Окошко при этом появляется то же, что и при разборе AVI на кадры, но там становятся видно много других кнопок. В конце собрать AVI можно, нажав на "Сделать AVI (R)" или просто R на клаве.

vid14.png.79b6e41ed24044fc7f8c53481c782ffa.png

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Огромное спасибо! Буду пробовать. О результатах обязуюсь отчитаться. :)

Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

  • 5 лет спустя...

Выпущен PaintCAD 4Windows 1.5.2.1352

1.png.578cbd0e131bc06d2b6b860d276f131a.png

Скачать:
По прямой ссылке  (14,2 Мбайт)
RAR: http://blackstrip.ru/pcw.rar
ZIP: http://blackstrip.ru/pcw.zip
SFX-EXE: http://blackstrip.ru/pcw.exe

Основные изменения:

1) Редактор мозаики теперь отображает номер элемента мозаики под курсором, меняет размер отображаемых номеров элементов мозаики в зависимости от размеров самих элементов (чтоб номер влезал в мелкие элементы), а также показывает курсор и выделение даже при выключенных деталях.

2.png.40dc0a4314de8a2bf75a89af6d855051.png

Также теперь можно заливать выделенный фрагмент мозаики указывая картинку из папки (с предпросмотром всех возможных картинок), а не просто по номеру картинки или перебором всех номеров по Z/X-клавишам.

3.png.e7c4f8e55eff6bc375b6e05f11190292.png

2) В программируемый редактор картинок/анимаций Scriptaint добавлен вывод эмодзи-значков шрифтом Segoe UI Emoji. Пример вывода эмодзи добавлен в стандартный шаблон нового скрипта картинки.

4.png.77065b8e76472d986bb25e4b4d877411.png

3) Генератор ASCII-артов инструмента Текст дополнен новым методом "Черно-белый + Зернистый 5-цветный", смешивающим 5-цветную псевдографику и черно-белые точки в зависимости от перепада яркостей пикселей на исходной картинке.

5.png.aca00514ccfa30e4e49cccd2a5d3ee4a.png

4) Генератор мелодий Muzz теперь научился сочинять песни в четырех жанрах (рок, поп, хип-хоп и регги), а также менять громкость нот в партиях мелодии, аккомпанемента и барабанов. Добавлено много вариантов аккомпанемента (включая простые на 1-2 нотах), а также много вариантов барабанного боя для новых жанров. Сохраняемые в MID-файлы мелодии теперь проигрываются в корректном темпе на Android-устройствах.

6.png.4c0df9255dc67f75bb618ac74b81cc1c.png

Примеры новых сгенерированных мелодий:

Рок
http://blackstrip.ru/tmp/pcw152/rockmus1.mid
http://blackstrip.ru/tmp/pcw152/rockmus2.mid
http://blackstrip.ru/tmp/pcw152/rockmus3.mid
http://blackstrip.ru/tmp/pcw152/rockmus4.mid
http://blackstrip.ru/tmp/pcw152/rockmus5.mid
http://blackstrip.ru/tmp/pcw152/rockmus6.mid

Поп
http://blackstrip.ru/tmp/pcw152/popmus1.mid
http://blackstrip.ru/tmp/pcw152/popmus2.mid
http://blackstrip.ru/tmp/pcw152/popmus3.mid
http://blackstrip.ru/tmp/pcw152/popmus4.mid
http://blackstrip.ru/tmp/pcw152/popmus5.mid
http://blackstrip.ru/tmp/pcw152/popmus6.mid

Хип-хоп
http://blackstrip.ru/tmp/pcw152/hiphop1.mid
http://blackstrip.ru/tmp/pcw152/hiphop2.mid
http://blackstrip.ru/tmp/pcw152/hiphop3.mid
http://blackstrip.ru/tmp/pcw152/hiphop4.mid
http://blackstrip.ru/tmp/pcw152/hiphop5.mid
http://blackstrip.ru/tmp/pcw152/hiphop6.mid

Регги
http://blackstrip.ru/tmp/pcw152/reggae1.mid
http://blackstrip.ru/tmp/pcw152/reggae2.mid
http://blackstrip.ru/tmp/pcw152/reggae3.mid
http://blackstrip.ru/tmp/pcw152/reggae4.mid
http://blackstrip.ru/tmp/pcw152/reggae5.mid
http://blackstrip.ru/tmp/pcw152/reggae6.mid

5) Мини-браузер Bro и IRC-чат Retro теперь могут отображаться не только на полный экран, но и в окошке. А запуск паинткада с ключами -bro или -retro показывает только окошко браузера/чата, не показывая другие окна паинткада. При закрытии такого окошка весь паинткад автоматически закрывается (т.е. можно запустить паинткад с ключом -bro или -retro как будто отдельную программу-чат или программу-браузер).

7.png.afcd7b458214658db416d028747e3247.png

Полное описание изменений см. в окне "О программе".

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...