Make Slideshow From Uploaded Files (VB) | ASP.NETByteScout Image To Video SDK

Make Slideshow From Uploaded Files (VB) | ASP.NET

Default.aspx.vb:

VB
Imports System.IO
Imports BytescoutImageToVideo

Partial Public Class _Default
    Inherits Page

    Dim uploadPath As String = "\uploads\"
    Dim outputPath As String = "\output\"

    Protected Sub ButtonUpload_Click(sender As Object, e As EventArgs) Handles ButtonUpload.Click

        If FileUpload1.HasFile Then
            Dim fileName As String = FileUpload1.FileName
            uploadPath += fileName
            FileUpload1.SaveAs(Server.MapPath(uploadPath))
            ListBoxUploadedImages.Items.Add(FileUpload1.FileName)
        End If

    End Sub

    Protected Sub ButtonMakeVideo_Click(sender As Object, e As EventArgs) Handles ButtonMakeVideo.Click

        ' Create BytescoutImageToVideoLib.ImageToVideo object instance
        Dim converter As New ImageToVideo()

        ' Activate the component
        converter.RegistrationName = "demo"
        converter.RegistrationKey = "demo"

        Dim outputVideoFile As String = Server.MapPath(outputPath + "result.wmv")

        ' Add images to converter and set the duration for every slide
        For Each item As ListItem In ListBoxUploadedImages.Items
            Dim fileName As String = item.Value
            Dim slide As Slide
            slide = converter.AddImageFromFileName(Server.MapPath(uploadPath + fileName))
            slide.Duration = 2000 ' 2000ms = 2s
        Next

        ' Set output video size
        converter.OutputWidth = 640
        converter.OutputHeight = 480

        ' Set output video file name
        converter.OutputVideoFileName = outputVideoFile

        ' Run the conversion
        converter.RunAndWait()

        ' Release resources
        System.Runtime.InteropServices.Marshal.ReleaseComObject(converter)
        converter = Nothing

        ' Show filename of result file
        Response.Clear()
        Response.ContentType = "text/html"

        If File.Exists(outputVideoFile) Then
            Response.Write("Result video file:  <b>" + outputVideoFile + "</b>")
        Else
            Response.Write("Conversion failed. Error information: " + converter.LastError)
        End If

        Response.End()

    End Sub

End Class

Web.config:

<?xml version="1.0"?>
<configuration>
	<appSettings/>
	<connectionStrings/>
	<system.web>
		<!-- 
            Set compilation debug="true" to insert debugging 
            symbols into the compiled page. Because this 
            affects performance, set this value to true only 
            during development.

            Visual Basic options:
            Set strict="true" to disallow all data type conversions 
            where data loss can occur. 
            Set explicit="true" to force declaration of all variables.
        -->
		<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
		<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
			<namespaces>
				<clear/>
				<add namespace="System"/>
				<add namespace="System.Collections"/>
				<add namespace="System.Collections.Specialized"/>
				<add namespace="System.Configuration"/>
				<add namespace="System.Text"/>
				<add namespace="System.Text.RegularExpressions"/>
				<add namespace="System.Web"/>
				<add namespace="System.Web.Caching"/>
				<add namespace="System.Web.SessionState"/>
				<add namespace="System.Web.Security"/>
				<add namespace="System.Web.Profile"/>
				<add namespace="System.Web.UI"/>
				<add namespace="System.Web.UI.WebControls"/>
				<add namespace="System.Web.UI.WebControls.WebParts"/>
				<add namespace="System.Web.UI.HtmlControls"/>
			</namespaces>
		</pages>
		<!--
            The <authentication> section enables configuration 
            of the security authentication mode used by 
            ASP.NET to identify an incoming user. 
        -->
		<authentication mode="Windows"/>
		<!--
            The <customErrors> section enables configuration 
            of what to do if/when an unhandled error occurs 
            during the execution of a request. Specifically, 
            it enables developers to configure html error pages 
            to be displayed in place of a error stack trace.

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
	</system.web>
</configuration>