将image属性设置为文件路径
本文关键字:文件 路径 设置 image 属性 | 更新日期: 2023-09-27 18:20:48
我有一个person类,如下所示,其中有一个image作为属性。我想知道如何在我的程序类中创建person类的实例,并将对象的图像设置为文件路径,例如C:''Users''Documents''picture.jpg。我该怎么做?
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
public Image myImage { get; set; }
public Person()
{
}
public Person(string firstName, string lastName, Image image)
{
this.fName = firstName;
this.lName = lastName;
this.myImage = image;
}
}
这样试试:
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
public Image myImage { get; set; }
public Person()
{
}
public Person(string firstName, string lastName, string imagePath)
{
this.fName = firstName;
this.lName = lastName;
this.myImage = Image.FromFile(imagePath);
}
}
并像这样实例化:
Person p = new Person("John","Doe",@"C:'Users'Documents'picture.jpg");
使用无参数构造函数,将如下所示:
Person person = new Person();
Image newImage = Image.FromFile(@"C:'Users'Documents'picture.jpg");
person.myImage = newImage;
尽管使用其他构造函数应该是首选方法
一个选项是:
public Person(string firstName, string lastName, string imagePath)
{
...
this.myImage = Image.FromFile(imagePath);
}
其他人都已经建议使用Image.FromFile
。您应该注意,这将锁定文件,这可能会在以后引发问题。更多阅读:
为什么Image.FromFile有时会打开文件句柄?
请考虑改用Image.FromStream
方法。下面是一个获取路径并返回图像的示例方法:
private static Image GetImage(string path)
{
Image image;
using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
image = Image.FromStream(fs);
}
return image;
}
这种方法的价值在于,您可以控制何时打开和关闭文件句柄。