vb.net - 在 VB.NET 中选择图像有更好的方法吗?
问题描述
我有像这样导入我的oop的图片。但是目前,每当我复制或移动文件时,它显然无法读取它。
frmLayout.picwater.Image = Image.FromFile("C:\Users\Ceejay\Desktop\winBTECGradeAndUcasCal\winBTECGradeAndUcasCal\Pictures\water2.png")
解决方案
使用流加载图像
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 关于不使用硬编码文件路径的评论
推荐阅读
- javascript - 使用 net 包的 NodeJs 中的 SO_REUSEADDR
- c# - Windows.Forms.Timers 在 c# 中同时勾选和单击按钮
- php - timezone_name_from_abbr 在 php 中不起作用
- jquery - componentdidmount 内的 jquery 插件函数内的“this”关键字
- perl - 我需要根据 CCNA 编号从基因序列中提取基因长度(为给定查询提取值)
- python - 如何在 Django 虚拟环境中运行 Crontab?
- vuejs2 - 当我使用顺风和元素加载时,加载微调器不在屏幕中心,如何解决?
- c++ - 如何将主机和内核的数据定位在两个不同的位置
- gradle - Gradle 7.2 自定义插件:如何在应用(项目:项目)中使用版本目录?
- eloquent - 如何选择 Laravel 查询,如果字段 `region`="taluk" 然后使用 FIND_IN_SET 从同一表中的 `taluks` 字段中找到 taluk