我知道,我知道......还有很多这样的帖子。我没找到我要找的东西,让我们继续前进。
我使用this GhostScript implementation for C#将PDF分解为图像,然后尝试将每个图像加载到位图中,有时它会在此行中为我提供Parameter is not valid error
:
[...]new Bitmap((Image)Image.FromFile(imagePath))[...]
Image.FromFile(imagePath)
成功返回一个Image(虽然我认为它返回了一个Bitmap)但是Bitmap的构造函数给了我错误。我做错了什么?
P.S。
我将结果转换为Image
,因为当我快速观察Image.FromFile(...)的结果时,它将它显示为System.Drawing.Bitmap(无论是方式,强制转换,没有强制转换,都会产生相同的结果)结果)。
答案 0 :(得分:3)
您不应该从位图创建新的位图,只需将引用转换为您已经存在的位图:
Bitmap b = (Bitmap)Image.FromFile(imagePath);
如果从您从文件加载的位图创建新位图,则不会获得对您加载的位图的任何引用。由于您无法处置该位图,因此您将把它们留给垃圾收集器进行最终确定,如果这种情况发生得不够快,则可能会耗尽内存。
答案 1 :(得分:2)
尝试使用接收图像路径的Bitmap构造函数,如下所示:
var b = new Bitmap(imagePath);