Показать несколько форматов изображений - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть одна папка, содержащая изображения в разных форматах, например .jpg, .pdf, .png

Они названы 1.jpg, 2.pdf, 3.png вот так.

Когда я вписываю 1 или 2 или 3 в текстовое поле, я хочу отобразить это изображение в графическом окне.

Моя проблема в том, что он показывает только jpg файл изображения, не показывающий pdf или png

Dim ImagePath As String = "E:\" & Val(TxtReceiptNo.Text) & ".jpg"
Dim img1 As Bitmap
Dim newImage As Image = Image.FromFile("E:\" & Val(TxtReceiptNo.Text) & ".jpg")
img1 = New Bitmap(ImagePath)
PicBx.ImageLocation = ImagePath
PicBx.Image = newImage

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Поскольку вы объединяете имя файла и всегда ставите «.jpg» в качестве суффикса файла, будут отображаться только существующие файлы jpg.Вместо этого вам нужно искать существующие файлы и показывать их, когда вы нашли один:

Например:

    Dim ImagePath As String = "E:\"
    Dim SearchPattern As String = TxtReceiptNo.Text & ".*"

    Dim files As String() = IO.Directory.GetFiles(ImagePath, SearchPattern)

    If files IsNot Nothing Then
        For Each file As String In files
            ... (your code for showing pictures goes here)
        Next file
    End If
0 голосов
/ 12 сентября 2018

Изображение не может обрабатывать PDF.Изображение отображает BMP, GIF, EXIF, JPG, PNG и TIFF.Вам нужно будет добавить библиотеки ADOBE в ваш проект и поработать с ними, чтобы отобразить PDF в нужном вам размере.

Кроме того, вам нужно искать каждый тип формата изображения, который вы хотите обработать.

Этот код взят из проекта, над которым я работаю.Он открывает файлы PNG, JPG и PNG и помещает их в графическое окно, содержащееся в поточной панели на форме.(Me.picpanel = New System.Windows.Forms.FlowLayoutPanel ())

      For Each fi As FileInfo In DirInfo.GetFiles
            If Not (fi.Attributes And FileAttributes.Hidden) = FileAttributes.Hidden Then
                If fi.Extension = ".png" Or fi.Extension = ".jpg" Or fi.Extension = ".bmp" Then
                        .Tag = fi.FullName
                    MyImageList.Add(fi.FullName)

                End If
            End If

        Next



        Dim a As String

    Catch ex As Exception
        MessageBox.Show(ex.Message, "Error...", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try


    Try

        For Each MyImage In MyImageList

            Dim Width As Integer = 700
            Dim sourceImage As Image = Image.FromFile(MyImage)
            Dim X As Integer = sourceImage.Width
            Dim Y As Integer = sourceImage.Height

            Dim fullSizeImg As Image = Image.FromFile(MyImage)
            Dim P As New PictureBox

            P.Tag = fullSizeImg
            P.SizeMode = PictureBoxSizeMode.StretchImage
            P.Size = New Size(200, 200)
            P.Image = fullSizeImg
            picpanel.Controls.Add(P)

        Next
    Catch ex As Exception

    End Try
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...