首页 > 解决方案 > 在 VB.NET 中选择图像有更好的方法吗?

问题描述

我有像这样导入我的oop的图片。但是目前,每当我复制或移动文件时,它显然无法读取它。

frmLayout.picwater.Image = Image.FromFile("C:\Users\Ceejay\Desktop\winBTECGradeAndUcasCal\winBTECGradeAndUcasCal\Pictures\water2.png")

标签: vb.netvisual-studio

解决方案


使用流加载图像

Public Function LoadImageFromStream(ByVal cImage As String) As Image
    Dim image As Image = Nothing
    Using fs As New System.IO.FileStream(cImage, IO.FileMode.Open, IO.FileAccess.Read)
        Dim buffer(fs.Length) As Byte
        fs.Read(buffer, 0, fs.Length - 1)
        Using ms As New System.IO.MemoryStream
            ms.Write(buffer, 0, buffer.Length - 1)
            image = image.FromStream(ms)
        End Using
    End Using
    Return image
End Function

在您的代码中,您可以这样称呼它

frmLayout.picwater.Image = LoadImageFromStream("C:\Users\Ceejay\Desktop\winBTECGradeAndUcasCal\winBTECGradeAndUcasCal\Pictures\water2.png")

但是你真的应该考虑@Hans Passant 关于不使用硬编码文件路径的评论


推荐阅读