0
此问题特定于System.Drawing.Bitmap。C#位图记住它来自哪里?
考虑这种情况:我创建了一个位图,像这样
public Bitmap GetImage(string sourceImage)
{
//sourceImage contains something like "C:\\Users\\my.name\\path\\to\\image.jpg"
//error/valid filename checking omitted in this example
Bitmap img = new Bitmap(sourceImage);
return img;
}
现在我的代码都和做的事情与Bitmap
。之后,代码的无关部分决定使用该图像完成该操作,并且不需要再保留Bitmap
对象。但是,有可能再次需要它,所以它想要记住什么是sourceImage
,以便如果它确实需要它,它就知道如何重新创建它。这主要是由于记忆力;存储路径字符串比存储(可能)较大的图像占用更少的空间。
Bitmap
是否记得它来自哪里,或者它是否必须带着这些信息?
我认为只是分配sourceImage
到Tag
财产,但是我使用Tag
其他的事情,我不想过于复杂了。我希望源信息仍然可以帮助我省去麻烦。
不 - https://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Image.cs,b2315d1ff08bc616和令人讨厌的类是密封的,所以你不能创建派生类用ImagePath作为属性 – pm100
为什么不使用标签?制作你自己的班级,并在那里放置一个实例,听起来就像你想要的那样。 – DavidG
@DavidG我正在使用标签来传送一些其他信息。如果我修改它以携带更多的信息,那么由此产生的重构将是相当大的麻烦。如果可能,我希望避免这种情况。 – Cody