Вверх ↑
Этот топик читают: Гость
Ответов: 107
Рейтинг: 0
#1: 2020-08-30 12:20:50 ЛС | профиль | цитата
Привет ребята. Можете помочь с одной фишкой? Нужна программа для создания комиксов, саму основу я уже сделал, но нежно теперь, что бы можно было удобно накладывать диалоги на изображения (кадры видео), что бы рисунок под текстом масштабировался под сам размер текста, а сама форма была прозрачной.
Суть такая, есть кадр с видео (с плеера через хендл и скриншот), на нем нужно наложить диалоги как на комиксах. Подскажите как это лучше сделать?


карма: 0

0
Ответов: 1926
Рейтинг: 172
#2: 2020-08-30 16:26:33 ЛС | профиль | цитата
germes5558 писал(а):
сама форма была прозрачной

Какая форма? Вывеска с текстом, что ли?

germes5558 писал(а):
рисунок под текстом масштабировался под сам размер текста

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

--- Добавлено в 2020-08-30 16:27:18

Вывески-то создаются средствами hiasm или в другом граф. редакторе?

Редактировалось 1 раз(а), последний 2020-08-30 16:27:18
карма: 9
0
Ответов: 107
Рейтинг: 0
#3: 2020-08-30 20:56:51 ЛС | профиль | цитата
Все делается средствами hiasm, нужно масштабировать именно изображение под текст, так как длинна текста может быть разной
карма: 0

0
Ответов: 2236
Рейтинг: 676
#4: 2020-08-30 22:28:08 ЛС | профиль | цитата
germes5558 писал(а):
нужно масштабировать именно изображение под текст
А не наоборот?
карма: 11

0
Ответов: 107
Рейтинг: 0
#5: 2020-08-31 00:35:31 ЛС | профиль | цитата
Блин я видимо не верно выразился я имею введу изображение диалога, а не фона))). (Этого облачка которое нарисовано от головы персонажа, вот что бы это облачко и масштабировалось под текст)
карма: 0

0
Ответов: 1926
Рейтинг: 172
#6: 2020-08-31 09:15:38 ЛС | профиль | цитата
Текст каким компонентом отрисовывается? Img_Text? У него есть TextWidth и TextHeight, под них и следует масштабировать вывеску (то самое "облачко" ).

Редактировалось 1 раз(а), последний 2020-08-31 09:16:31
карма: 9
0
Ответов: 783
Рейтинг: 168
#7: 2020-08-31 09:42:25 ЛС | профиль | цитата
Извините. Пять минут в Excel-е и готово. Автомаштабирование, подгонка по тексту, разные шрифты, типы линий и заливок и прочее...
Безымянный.png
карма: 15

0
Ответов: 2236
Рейтинг: 676
#8: 2020-08-31 12:21:17 ЛС | профиль | цитата
Gunta писал(а):
Извините. Пять минут в Excel-е и готово. Автомаштабирование, подгонка по тексту, разные шрифты, типы линий и заливок и прочее...
И к чему этот ваш пост? Реклама Excel-a? Ну так погуглите и скорее всего найдёте не одну программу для создания комиксов. Не понимаю смысла вашего поста.
карма: 11

0
Ответов: 107
Рейтинг: 0
#9: 2020-08-31 13:38:10 ЛС | профиль | цитата
Gunta, Каждый раз переходить во внешние программы не совсем удобно будет, лучше все реализовать в основной.
3042, Блин я сделал через Label, но это не то что мне нужно. Попробую сегодня через Img_Text.

Спасибо!

Редактировалось 1 раз(а), последний 2020-08-31 13:38:40
карма: 0

0
Ответов: 8921
Рейтинг: 823
#10: 2020-09-01 18:58:46 ЛС | профиль | цитата
germes5558, что-то никто не предлагает решения, вот набросал, что смог:
https://forum.hiasm.com/getfile/39111 (в диалоге открытия картинки впишите свои пути).
Прямоугольник с текстом (Memo) перемещать левой кнопкой, правой менять размер поля, колёсиком вид овала. Сам текст можно вводить с клавиатуры или копипастить.
Балериночка.jpg
карма: 19

0
Ответов: 783
Рейтинг: 168
#11: 2020-09-01 20:18:48 ЛС | профиль | цитата
Леонид, наверное все ждут что покажет germes5558. Еще вариант, через мой любимый Excel(не реклама).
https://forum.hiasm.com/getfile/39112
ЛКМ - перемещать, ПКМ - удалять.

Редактировалось 3 раз(а), последний 2020-09-01 20:48:31
карма: 15

0
Ответов: 8921
Рейтинг: 823
#12: 2020-09-01 22:40:20 ЛС | профиль | цитата
Gunta, картинка с примечанием от Excel создаётся и помещается в буфер. Но сама Excel не удаляется из памяти. Да и "переносить по словам" надо выставить.
Квазимодо_5.jpg
Excel тоже уважаю, но меньше года назад пришлось версию 2019 года ставить, такая не удобная, аж противно
карма: 19

0
Ответов: 783
Рейтинг: 168
#13: 2020-09-02 08:24:53 ЛС | профиль | цитата
Леонид, поправил. Пока не понятно, что выберет создатель темы, и в какую сторону его "подталкивать" или, возможно, сделает что-то своё.
Add(MainForm,10014265,77,63)
{
Left=20
Top=105
Width=715
Height=405
Name="Comics"
Point(onClose)
Point(Left)
Point(Top)
Point(SizeBorder)
Point(SizeHeader)
Point(doBringToFront)
Point(doSetFocus)
link(onCreate,15140061:doEvent1,[])
link(onClose,84379:In,[])
}
Add(VBJScript,7818199,301,196)
{
WorkPoints=#11:##SetScript|
Script=#0:|0:|
}
Add(ChildPanelEx,9495353,210,196)
{
link(onFString,10912034:doEvent1,[])
}
BEGIN_SDK
Add(EditMultiEx,5568177,21,21)
{
WorkCount=#6:doData|0:|
EventCount=#9:onFString|8:onEvent1|0:|
Width=552
Height=606
link(doData,7998393:doEvent1,[(81,27)(81,83)])
}
Add(Panel,2715289,35,105)
{
Left=489
Width=210
Height=366
Align=3
}
Add(FormatStr,7734432,238,385)
{
DataCount=5
Mask="Dim objExcel, objWorkbook, objCallout, objWorksheet\r\n\r\n Set objExcel = CreateObject("Excel.Application")\r\n objExcel.Visible = False\r\n objExcel.DisplayAlerts = False\r\n Set objWorkbook = objExcel.Workbooks.Add\r\n Set objWorksheet = objWorkbook.Worksheets(1)\r\n Set objCallout = objWorksheet.Shapes.AddShape(%2, 125, 150, 70, 50)\r\n With objCallout\r\n .ShapeStyle = 22\r\n .TextFrame.Characters.Text = "%1"\r\n .TextFrame.Characters.Font.Name = "%3" \r\n .TextFrame.Characters.Font.Size = %4\r\n .TextFrame.Characters.Font.ColorIndex = %5 \r\n .TextFrame.AutoSize = 1\r\n .Adjustments.Item(1) = -0.5\r\n .Adjustments.Item(2) = 1\r\n '.Line.DashStyle = 2\r\n '.Line.ForeColor.RGB = RGB(255, 0, 0)\r\n \r\n .Select\r\n .Copy\r\n End With\r\n 'objCallout.Select\r\n 'objCallout.Copy\r\n objExcel.Quit\r\n Set objExcel = Nothing\r\n\r\n \r\n "
link(onFString,5568177:onFString,[(417,391)(417,27)])
link(Str1,12168777:Var2,[(244,376)(209,376)])
link(Str2,8682430:String,[])
link(Str3,16196897:CurrentFont,[])
link(Str4,12347589:Text,[(265,201)(293,201)])
link(Str5,665877:Index,[(272,236)(328,236)])
}
Add(Memo,10812541,112,322)
{
Left=2
Top=2
Width=206
Height=115
Align=2
Strings=#16:Вызывает антирес|19:И такой ишо разрез:|26:Как у вас там ходют бабы —|21:В панталонах али без.|0:|
ScrollBars=3
}
Add(ComboBox,8682430,238,49)
{
Left=5
Top=115
Height=21
Strings=#3:105|3:106|3:107|3:108|0:|
Text="108"
Point(doSelectString)
}
Add(DoData,37326,189,77)
{
Data=Integer(108)
link(onEventData,8682430:doSelectString,[])
}
Add(ArrayEnum,6302324,126,378)
{
link(onItem,10884594:doStrCatDlm,[(165,384)(165,335)])
link(onEndEnum,7734432:doString,[])
link(Array,10812541:Array,[])
}
Add(StrCatDelim,10884594,203,329)
{
Delimiter=""& Chr(10) &""
Point(doClear)
link(Str1,12168777:Var1,[(209,320)(195,320)(195,369)])
}
Add(GetDataEx,12168777,203,364)
{
link(Data,10884594:Result,[])
}
Add(Hub,13169329,91,371)
{
OutCount=3
link(onEvent1,10884594:doClear,[(172,377)(172,342)])
link(onEvent2,6302324:doEnum,[])
}
Add(Hub,7998393,91,77)
{
OutCount=3
link(onEvent1,37326:doData,[])
link(onEvent2,8126443:doData,[(179,90)(179,209)])
}
Add(Button,8620402,49,371)
{
Left=2
Top=324
Width=206
Align=4
Caption="Создать"
link(onClick,13169329:doEvent1,[])
}
Add(ColorBox,665877,315,196)
{
Left=163
Top=142
Width=45
Height=21
}
Add(FontBox,16196897,252,161)
{
Left=2
Top=142
Width=110
Height=21
SelFont="Segoe Script"
}
Add(Edit,12347589,287,161)
{
Left=117
Top=140
Width=36
Height=24
Font=[MS Sans Serif,12,0,0,1]
Text="10"
DataType=2
ClearAfterEnter=1
}
Add(DoData,8126443,196,203)
{
Data=String(1)
link(onEventData,665877:doSelectColor,[])
}
END_SDK
Add(Hub,10912034,266,196)
{
link(onEvent1,7818199:##SetScript,[])
link(onEvent2,6631650:##add,[])
}
Add(ODialog,3782541,231,77)
{
link(onExecute,843123:doLoadFrom,[])
}
Add(EnumProcess,10869016,602,98)
{
Name="EXCEL.EXE"
Point(Name)
Point(doFindName)
Point(onFind)
link(onFind,10869016:doKill,[(641,111)(641,90)(592,90)(592,118)])
}
Add(LineBreak,2629559,546,119)
{
link(Out,10869016:doFindName,[])
Primary=[84379,-420,-35]
}
Add(ChildScrollBox,6481383,392,77)
{
link(onEvent1,15753555:doExecute,[])
}
BEGIN_SDK
Add(EditMulti,15256453,7,21)
{
EventCount=1
WorkCount=2
VarCount=3
Width=580
Height=256
link(doWork1,15183908:doLoad,[(207,27)(207,41)])
link(doWork2,15183908:doRefresh,[(200,34)(200,55)])
link(Var1,15183908:ImageBitmap,[(13,82)(223,82)])
link(Var2,15183908:Left,[(20,89)(230,89)])
link(Var3,15183908:Top,[(27,96)(237,96)])
}
Add(ScrollBox,3673637,259,126)
{
Width=559
Height=366
Align=5
Point(Left)
Point(Top)
}
Add(Image,15183908,217,35)
{
Width=68
Height=37
AutoSize=0
ViewStyle=4
Point(doRefresh)
Point(Left)
Point(Top)
Point(onMouseDown)
link(onMouseDown,8100323:doEvent,[])
}
Add(IndexToChanel,8100323,266,42)
{
link(onEvent2,14654003:doPopupHere,[])
}
Add(PopupMenu,14654003,322,49)
{
Menu=#17:Сохранить рисунок|
link(onClick,10954584:doEvent,[])
}
Add(IndexToChanel,10954584,385,49)
{
Count=3
link(onEvent1,15256453:onEvent1,[(424,55)(424,27)])
}
END_SDK
Add(Hub,15140061,161,77)
{
link(onEvent1,3782541:doExecute,[])
link(onEvent2,9495353:doData,[(186,90)(186,202)])
}
Add(Img_AlphaBmp,14772512,140,420)
{
Point(X)
Point(Y)
link(onDraw,8475122:doWork,[])
link(Bitmap,4304517:getVar,[(146,397)(111,397)])
link(AlphaBitmap,13217951:Bitmap,[(153,390)(139,390)])
link(X,6630475:Result,[(160,341)(111,341)])
link(Y,3024571:Result,[])
}
Add(Clipboard,13217951,126,350)
{
}
Add(ChildFormEx,6631650,371,196)
{
Mode=1
link(onEvent1,9354981:doWork,[(410,202)(410,195)])
link(onEvent2,16623951:In,[])
}
BEGIN_SDK
Add(EditMultiEx,168946,21,21)
{
WorkCount=#8:doEvent1|5:##add|
EventCount=#8:onEvent1|8:onEvent2|8:onEvent3|
VarCount=#4:Left|3:Top|
Width=363
Height=298
Point(##add)
link(doEvent1,12260838:doClose,[(109,27)(109,125)])
link(##add,13134724:doData,[(46,34)(46,132)])
link(Left,12260838:Left,[(27,173)(125,173)])
link(Top,12260838:Top,[(34,180)(132,180)])
}
Add(IndexToChanel,1447170,168,119)
{
link(onEvent2,5146317:doPopupHere,[])
}
Add(Clipboard,13574382,56,77)
{
}
Add(DoData,13134724,63,126)
{
link(onEventData,12260838:doPicture,[])
link(Data,13574382:Bitmap,[])
}
Add(MainForm,12260838,119,98)
{
Width=1351
Height=680
Color=16777215
KeyPreview=1
Caption="Form1"
BorderStyle=0
TaskBar=1
DragForm=0
ClientSize=0
Position=2
Point(doPicture)
Point(onMouseDown)
Point(Left)
Point(Top)
link(onMouseDown,1447170:doEvent,[])
}
Add(PopupMenu,5146317,224,126)
{
Menu=#7:Удалить|8:Вставить|0:|
link(onClick,11793537:doEvent,[])
}
Add(IndexToChanel,11793537,273,126)
{
Count=3
link(onEvent1,168946:onEvent1,[(312,132)(312,27)])
link(onEvent2,168946:onEvent2,[(319,139)(319,34)])
link(onEvent3,168946:onEvent3,[(326,146)(326,41)])
}
END_SDK
Add(Img_GDIFileProcessor,843123,287,77)
{
link(onLoad,6481383:doWork1,[])
link(SBitmap,4649719:getVar,[])
}
Add(Hub,13815085,70,287)
{
link(onEvent1,6630475:doCalc,[])
link(onEvent2,14772512:doDraw,[(95,300)(95,426)])
}
Add(MathParse,6630475,105,287)
{
DataCount=3
MathStr="%1 - %2 -%3"
link(onResult,3024571:doCalc,[])
link(X1,6631650:Left,[(111,257)(377,257)])
link(X2,10014265:Left,[(118,278)(83,278)])
link(X3,2974769:Var2,[])
}
Add(MathParse,3024571,161,287)
{
DataCount=4
MathStr="%1 - %2 -%3 -0"
link(X1,6631650:Top,[(167,278)(384,278)])
link(X2,10014265:Top,[(174,271)(90,271)])
link(X3,10014265:SizeHeader,[(181,247)(104,247)])
link(X4,2974769:Var3,[(188,265)])
}
Add(Hub,3293907,329,119)
{
OutCount=3
link(onEvent1,6481383:doWork2,[(354,125)(354,90)])
link(onEvent2,6631650:doEvent1,[(361,132)(361,202)])
link(onEvent3,14496742:doEvent1,[(354,139)(354,153)(39,153)(39,97)])
}
Add(GetDataEx,2974769,119,260)
{
Angle=3
link(Data,10014265:SizeBorder,[(97,265)])
}
Add(Hub,14496742,49,91)
{
link(onEvent1,10014265:doBringToFront,[])
link(onEvent2,10014265:doSetFocus,[])
}
Add(LineBreakEx,9354981,427,189)
{
}
Add(LineBreakEx,13700084,301,119)
{
Type=1
link(OnEvent,3293907:doEvent1,[])
}
Add(LineBreakEx,8475122,182,420)
{
}
Add(LineBreak,525556,28,287)
{
link(Out,13815085:doEvent1,[])
Primary=[16623951,399,-84]
}
Add(SDialog,15753555,441,77)
{
link(onExecute,843123:doSaveTo,[(480,83)(480,69)(277,69)(277,90)])
}
Add(LineBreakEx,4649719,294,35)
{
Type=2
}
Add(LineBreakEx,4304517,105,378)
{
Type=2
}
Add(LineBreakEx,13758349,392,126)
{
Type=3
link(_Data,6481383:Var1,[])
}



Редактировалось 9 раз(а), последний 2020-09-03 11:23:53
карма: 15

0
Ответов: 107
Рейтинг: 0
#14: 2020-09-04 20:07:11 ЛС | профиль | цитата
Ребята спасибо, но это не то. Смотрите я сделал на скорую руку схему с примером, что именно мне нужно. Мне нужно что бы диалоги накладывались прямо при генерации скриншота с видео. Я тут сделал через LABLE и точки позиции x y. Но это не диалог, а просто надпись на скрине выходит. Было бы круто реализовать в форме диалогов как в комиксах. (закинул видео, нашел нужный момент, наложил диалоги и сохранил готовый кадр с диалогами.)

Add(MainForm,2953706,21,105)
{
Width=933
Height=558
link(onCreate,1463413:In,[])
}
Add(PaintBox,7004377,518,273)
{
Left=10
Top=10
Width=650
Height=420
Color=-16777215
Point(Handle)
}
Add(Button,7708754,294,329)
{
Left=15
Top=460
Width=90
Height=40
Font=[MS Sans Serif,10,1,255,1]
Caption="Open video"
link(onClick,14333574:doExecute,[])
}
Add(ODialog,14333574,350,329)
{
Select=1
link(onExecute,1967724:doOpen,[(450,335)(450,370)])
}
Add(Button,12073996,294,371)
{
Left=110
Top=460
Width=90
Height=40
Font=[MS Sans Serif,10,1,255,1]
Caption="||"
link(onClick,1967724:doPause,[(422,377)(422,384)])
}
Add(Image,2328344,434,539)
{
Left=675
Top=5
Width=240
Height=140
Color=10789024
}
Add(ScreenShort,1368632,385,539)
{
link(onCapture,2328344:doLoad,[])
link(Handle,3886317:Var,[])
}
Add(GetDataEx,11119944,525,315)
{
link(Data,7004377:Handle,[])
}
Add(Button,5211613,336,539)
{
Left=205
Top=460
Width=90
Height=40
Font=[MS Sans Serif,10,1,255,1]
Caption="Screen"
link(onClick,1368632:doCapture,[])
}
Add(ScrollBar,8992537,434,399)
{
Left=10
Top=430
Width=650
Point(doMax)
link(onPosition,1967724:doPosition,[(495,405)(495,398)])
}
Add(LineBreak,16672837,546,329)
{
Type=1
link(Data,11119944:Var3,[(552,320)])
Primary=[3886317,-161,182]
}
Add(DoData,11282431,378,406)
{
link(onEventData,8992537:doMax,[])
link(Data,15075766:Var,[])
}
Add(LineBreak,15167916,525,413)
{
Type=1
link(Data,1967724:Length,[])
Primary=[15075766,-147,-28]
}
Add(DirectShowPlayer,1967724,518,364)
{
Scale=1
Point(onOpen)
Point(onPosition)
link(Handle,11119944:Var2,[])
link(onOpen,6979312:In,[])
link(onPosition,12433550:In,[])
}
Add(LineBreak,14138714,336,406)
{
link(Out,11282431:doData,[])
Primary=[6979312,224,-42]
}
Add(LineBreak,13434951,399,399)
{
link(Out,8992537:doPosition,[])
Primary=[12433550,196,-28]
}
Add(Button,15275371,287,609)
{
Left=675
Top=155
Width=240
Height=40
Font=[MS Sans Serif,10,1,255,1]
Caption="Save"
link(onClick,7901266:doExecute,[])
}
Add(PictureStream,13831664,427,602)
{
link(Bitmap,2328344:ImageBitmap,[])
}
Add(SDialog,7901266,343,609)
{
link(onExecute,13831664:doSave,[])
}
Add(Edit,9720637,714,532)
{
Left=300
Top=460
Width=370
Text=""
link(onChange,7154645:doText,[])
link(Str,5799748:Value,[])
}
Add(TrackBarRush,13427744,714,581)
{
Left=300
Top=485
Width=185
Max=350
Min=10
link(onPosition,7154645:doLeft,[(796,587)(796,545)])
}
Add(TrackBarRush,11373032,714,623)
{
Left=490
Top=485
Width=180
Max=390
Min=10
link(onPosition,7154645:doTop,[(816,629)(816,552)])
}
Add(Label,7154645,847,532)
{
Left=10
Top=10
Width=125
Height=20
Color=-16777211
Font=[MS Sans Serif,25,1,0,1]
Caption=""
Point(doLeft)
Point(doTop)
link(Text,9720637:Text,[(853,520)(787,520)(787,576)(720,576)])
}
Add(LineBreak,6724972,658,532)
{
link(Out,9720637:doText,[])
Primary=[1463413,-595,-413]
}
Add(Memory,5799748,714,462)
{
Default=String(Add text for dialog...)
}


Редактировалось 2 раз(а), последний 2020-09-04 20:08:26
карма: 0

0
Ответов: 2236
Рейтинг: 676
#15: 2020-09-04 20:52:49 ЛС | профиль | цитата
Как вариант: архив с примером (перетаскивать - левый клик, масштабировать - колесиком мыши).
карма: 11

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)