VB(A)

[VB.net] 리스트뷰에서 항목 선택 시 썸네일 생성

당근쨈 2016. 7. 13. 18:33

리스트뷰에서 항목을 선택하면 썸네일을 생성해주는 코드

나름 애먹었던 코드다.

PDF도 썸네일을 생성하고 싶은데 이건 아크로벳이 설치되어 있어야하는 모양.


Public Function ThumbnailCallback() As Boolean

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

        Return False

    End Function


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

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


        Dim strFolder As String

        Dim strFilename As String

        Dim strExtention As String

        Dim strFilePath As String

        Dim imgTemp As Image

        Dim myCallback As New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)


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


            With lvView.FocusedItem

                strFolder = .SubItems(0).Text & "\"

                strFilename = .SubItems(1).Text

                strExtention = .SubItems(2).Text

            End With

            strFilePath = strFolder & strFilename & strExtention


            '이미지 파일과 pdf 파일 구분

            Select Case strExtention

                Case ".pdf" 'pdf 썸네일 생성(아크로벳 있어야함. 리더X)


                Case Else   '이미지파일일 썸네일 불러오기

                    imgTemp = imgTemp.FromFile(strFilePath)

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

            End Select



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

            pbView.Image = Nothing

        End If


    End Sub