我试图从本地路径读取System.Drawing.Image
结构的PDF文件。
我使用了Image.fromPath(string fileName)
- 它给我一个例外:
内存不足。
我阅读了文档,我明白在两种情况之一中可以抛出此异常 -
该文件没有有效的图片格式。
-OR -
GDI +不支持文件的像素格式。
我的问题是 - 它是哪一个,尽管如此我怎么能阅读图像?
注意:最终,图片变为System.IO.Stream
- 如果您可以将PDF转换为此结构,它将对我有所帮助。
答案 0 :(得分:1)
之前已回答过这个问题,here.
我想要做的是从本地路径获取流,为此我甚至不必使用System.Drawing
- 它甚至不包括图像中的PDF,而是System.IO
-
内存流可以由文件中的所有字节构成。我所要做的就是给出本地路径,从文件中读取数据,并将其作为内存流返回,如下所示:
var pdfContent = new MemoryStream(System.IO.File.ReadAllBytes(imageLocation));
pdfContent.Position = 0; // ensuring the stream is reading from the start.
return pdfContent;