6 сообщений в этой теме

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

1

Поделиться сообщением


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

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

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

Изменено пользователем Teddy_Bear
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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

 

1

Поделиться сообщением


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

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

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

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

Изменено пользователем Teddy_Bear
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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

1

Поделиться сообщением


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

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

Изменено пользователем Teddy_Bear
0

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас