Solved

Video Overlay

Posted on 2011-02-13
1
951 Views
Last Modified: 2012-05-11
Im messing around with some code I found online.
what it does is play a video file, and creates an overlay image when the video loads and plays it with the overlay.

Couldn't figure out a couple of things.

ist, the video player doesn't seem to  be loading.


2nd, having an error thrown on this line:
MediaItem.OverlayRect = New Rectangle(New Point(30, 10), New Size(MediaItem.VideoSize.Width, 30), MediaItem.VideoSize.Height, 10)

getting an error system.drawing.point cannot be converted to integer

This is a download link to the code

http://www.sendspace.com/file/eyil48






 
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports Microsoft.Expression.Encoder
'Imports System.Windows.Media
Imports System.Drawing
Imports System.Drawing.Imaging

Partial Class VideoOverlayVB
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        'Dim Point As Point

        ' sets file name to media item

        Dim MediaItem As New MediaItem(Server.MapPath("Users/Testuser/Video/Fishies2.wmv"))
        ' create the overlay image and return the path
        Dim overlayFileName As String = createOverlayImage("Thank you for encoding this video!", Environment.CurrentDirectory, MediaItem.VideoSize.Width, MediaItem.VideoSize.Height)
        ' create the overlay on the media item
        MediaItem.OverlayFileName = overlayFileName
        MediaItem.OverlayLayoutMode = OverlayLayoutMode.WholeSequence
        MediaItem.OverlayRect = New Rectangle(New Point(30, 10), New Size(MediaItem.VideoSize.Width, 30), MediaItem.VideoSize.Height, 10)


    End Sub


    Function createOverlayImage(ByVal overlayText As String, ByVal rootPath As String, ByVal width As Integer, ByVal height As Integer) As String
        ' full path for a temporary bitmap
        Dim overlayFileName As String = (Server.MapPath("temp/" + (Guid.NewGuid.ToString + ".bmp")))
        'Dim overlayFileName As String = (rootPath + ("\\" + (Guid.NewGuid.ToString + ".bmp")))
        'Response.write("sd" & overlayFileName)
        'Response.end()
        ' create a bitmap
        Dim bitmap As Bitmap = New Bitmap(width, height)
        Dim g As Graphics = Graphics.FromImage(bitmap)
        ' define the font
        Dim font As Font = New Font("Arial", CType(14, Single))
        ' define the area to draw on
        Dim area As Rectangle = New Rectangle(New Point(0, 0), New Size(width, height))
        ' draw the new image
        g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
        g.DrawString(overlayText, font, Brushes.Red, area)
        ' save the picture with the text overlay
        bitmap.Save(overlayFileName)
        ' return the path to the overlay image
        Return overlayFileName
    End Function

End Class

Open in new window

0
Comment
Question by:TheWebGuy38
1 Comment
 
LVL 5

Accepted Solution

by:
TomasP earned 500 total points
ID: 35353498
What comes back from the new point call isn't an integer needed for the rectangle api but a point object. It seems you want the rectangle in the upper left so just putting a zero in as the argument should work
0

Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This script will sweep a range of IP addresses (class c only, 255.255.255.0) and report to a log the version of office installed. What it does: 1.)      Creates log file in the directory the script is run from (if it doesn't already exist) 2.)      Sweep…
Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question