VB(A)

[VB.net] 이미지 슬라이드쇼

당근쨈 2016. 7. 16. 11:08

1. Browse...를 눌러 파일 선택

2. 파일명을 클릭하면 미리보기 생성

3. 확인을 누르면 슬라이드쇼 재생

4. 취소를 누르면 폼 닫힘


남은 것

1. 프로그램을 재실행하거나 컴퓨터를 재부팅해도 파일을 선택한 정보가 남는 것.

2. 슬라이드쇼 창만 풀스크린으로 확대할 것.

3. 이미지 변환 시 페이드 인/아웃 기능 -> 맨 마지막에. 어려움.


Imports System.IO


Public Class form1

    Private Arrfiles As String()


    Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click


        Arrfiles = Nothing


        With OpenFileDialog1

            .Filter = "Image Files|*.png;*.jpg;*.bmp;*.gif;*.jpeg"

            .ShowDialog()


            Try


                File.OpenRead(.FileNames(0))

                Arrfiles = .FileNames


                For Each strFilename As String In Arrfiles

                    ListView1.Items.Add(strFilename)

                Next


                ListView1.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent)


            Catch ex As Exception

                Exit Sub


            End Try


        End With


    End Sub


    Private i As Integer

    Private j As Integer


    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick


        Dim intInterval As Integer = 20


        If Arrfiles Is Nothing Then Return


        If j Mod intInterval = 0 Then


            If i = Arrfiles.Count Then

                i = 0

                j = 0

                Return

            End If


            pbPreview.Image = Image.FromFile(Arrfiles(i))

            i += 1

        End If

        j += 1


    End Sub


    Private Sub form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Timer1.Interval = 100

        tbSlide.Alignment = TabAlignment.Bottom

    End Sub


    Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs)

        If Not IsNumeric(e.KeyChar) AndAlso Not e.KeyChar = ControlChars.Back Then e.Handled = True

    End Sub


    Private Sub btnCancle_Click(sender As Object, e As EventArgs) Handles btnCancle.Click

        Me.Close()

    End Sub


    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click

        Timer1.Start()

    End Sub


    Public Function ThumbnailCallback() As Boolean

        '썸네일 이미지에 사용되는 함수

        Return False

    End Function


    Private Sub lvView_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged

        '리스트뷰에서 리스트 선택 썸네일 보여주기


        Dim strFilename As String

        Dim imgTemp As Image

        Dim myCallback As New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)


        If ListView1.SelectedItems.Count = 1 Then  '리스트뷰에서 하나만 클릭했을 실행


            strFilename = ListView1.FocusedItem.Text


            imgTemp = Image.FromFile(strFilename)

            pbPreview.Image = imgTemp.GetThumbnailImage(pbPreview.Width, pbPreview.Height, myCallback, IntPtr.Zero)


        Else    '하나도 선택 하거나 두개 이상 선택하면 미리보기 없음

            pbPreview.Image = Nothing


        End If


    End Sub

End Class



SlideShow.exe