byte []到XImage失败,通用GDI +错误

时间:2015-09-16 15:25:33

标签: .net image gdi+ pdfsharp

我正在使用PDFsharp在PDF上插入图片。图像作为数据库中的二进制对象出现。要使用PDFsharp插入它,我需要将它作为XImage。这是我到目前为止所做的:

XImage sealXImage;
using (var ms = new MemoryStream(seal.SealerImage))
// seal.SealerImage is the byte[], I verified this does actually have data in it
{
    Image sealImage = Image.FromStream(ms);
    sealXImage = XImage.FromGdiPlusImage(sealImage);
}
 XGraphics gfx = XGraphics.FromPdfPage(pdfToSeal.Pages[pageNumber]);
 gfx.DrawImage(sealXImage, 425, 475, 150, 100); // generic GDI+ error on this line

因此它可以快速地工作,直到抛出GDI +错误的最后一行:

  

System.Runtime.InteropServices.ExternalException:GDI +中发生一般错误。

我做错了什么,我该怎么做才能解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:3)

我怀疑问题是using:当你致电DrawImage()时,MemoryStream不再存在。如果我是正确的,在using块内调用DrawImage可以解决问题。

您也可以调用XImage.FromStream(),但如果您不更改using范围,我认为您会遇到同样的问题。