显示多种图像格式

时间:2018-09-12 09:11:59

标签: vb.net image

我有一个文件夹,其中包含.jpg.pdf.png

等多种格式的图像

它们被这样命名为1.jpg2.pdf3.png

当我在文本框中输入123时,我想在图片框中显示该图像。

我的问题是它仅显示jpg个图像文件而不显示pdfpng

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 :(得分:1)

图像无法处理PDF。该图像显示BMP,GIF,EXIF,JPG,PNG和TIFF。您需要将ADOBE dll添加到您的项目中,并与它们一起使用以所需的大小显示PDF。

此外,您需要查找要处理的每种图像格式类型。

此代码来自我正在处理的项目。它将打开PNG,JPG和PNG文件,并将它们放置在表单的flowlayoutpanel中包含的图片框中。 (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

答案 1 :(得分:1)

由于您连接了文件名,并且由于始终将“ .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