将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;
    }
 }

将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;
}

这种方法的价值在于,您可以控制何时打开和关闭文件句柄。