Disegnare sopra un video
Da Gambas-it.org - Wikipedia.
Versione del 26 mar 2019 alle 16:17 di Vuott (Discussione | contributi) (Creata pagina con "Mostriamo di seguito una modalità di disegnare sopra un video. Va precisato che la modalità mostrata non inciderà sui fotogrammi del video, poiché il disegno sarà effett...")
Mostriamo di seguito una modalità di disegnare sopra un video.
Va precisato che la modalità mostrata non inciderà sui fotogrammi del video, poiché il disegno sarà effettuato su una superficie posta al di sopra di quella adoperata per eseguire il video medesimo. In particolare si utilizzeranno le capacità dell'Oggetto WebView di eseguire un file audio/video, soprapponendovi quindi una DrawingArea per disegnare qualcosa.
L'Oggetto WebView fornisce automaticamente, fra l'altro, una risorsa per arrestare, porre in pausa e riprendere l'esecuzione del video.
Vediamo un esempio pratico:
Private WebView1 As WebView Private da As DrawingArea Private OldX As Single Private OldY As Single Private StartX As Single Private StartY As Single Private punti As New Integer[] Public Sub Form_Open() ' Crea una "WebView" come oggetto GUI da usare per l'uscita video: With WebView1 = New WebView(Me) .X = 10 .Y = 10 .W = 480 .H = 480 End With ' Crea una DrawingArea sulla quale disegnare delle linee rosse: With da = New DrawingArea(Me) As "da" .X = WebView1.X .Y = WebView1.Y .W = WebView1.W .H = WebView1.H - 80 .Background = Color.Transparent End With End Public Sub Button1_Click() ' Carica ed esegue il file video: WebView1.Url = "/percorso/del/file/video" End Public Sub da_Draw() Dim i As Integer With Draw .Foreground = Color.Red .Line(StartX, StartY, OldX, OldY) For i = 0 To punti.Max Step 4 .Line(punti[i], punti[i + 1], punti[i + 2], punti[i + 3]) Next .End End With End Public Sub da_MouseDown() StartX = Mouse.X StartY = Mouse.Y OldX = StartX OldY = StartY End Public Sub da_MouseMove() OldX = Mouse.X OldY = Mouse.Y da.Refresh() End Public Sub da_MouseUp() punti.Push(StartX) punti.Push(StartY) punti.Push(OldX) punti.Push(OldY) End