我有一个文件夹,其中包含.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
答案 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