簡體   English   中英

加載圖像而不使用system.drawing.image

[英]Load image without using system.drawing.image

我想加載圖像流,以便可以使用PDFsharp將其轉換為pdf。

以下代碼在我的test / console-application中運行,但在我的與ASP.NET Framework 4.6.1一起運行的項目中不起作用。 這是因為我正在使用System.Drawing.Image

Windows或ASP.NET服務中不支持使用System.Drawing.Imaging命名空間中的類。 嘗試從這些應用程序類型之一中使用這些類可能會產生意外問題,例如服務性能下降和運行時異常。

資料來源微軟

我們如何解決這個問題? 我更喜歡將所有內容都保存在內存中。

我在控制台應用程序中的工作代碼:

PdfDocument pdfDoc = new PdfDocument();
pdfDoc.Pages.Add(new PdfPage());
MemoryStream MemStream = new MemoryStream(inputStream); // Inputstream as byte[]

Image imgSource = Image.FromStream(MemStream); // This will fail
XImage imgX = XImage.FromGdiPlusImage(imgSource);

XGraphics xgr = XGraphics.FromPdfPage(pdfDoc.Pages[0]);
xgr.DrawImage(imgX, 0, 0);

MemoryStream outputStream = new MemoryStream();
pdfDoc.Save(outputStream, false);
byte[] dataConverted = outputStream.ToArray();
pdfDoc.Close();

return dataConverted;

只需將流傳遞給PDFsharp:

public static XImage FromStream(Stream stream)

在PDFsharp 1.50中,此方法是公共的。 我認為1.3x版本不公開。

使用PDFsharp的WPF構建-GDI構建在內部使用Image.FromStream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM