Solved

Video Overlay

Posted on 2011-02-13
1
943 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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

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…
Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

760 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

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now