在我的Lightswitch桌面应用程序(Silverlight客户端)中,我使用silverPDF创建发票。一切顺利,直到我尝试添加图像(公司徽标)。
我的图像是通过lightswitch图像屏幕控制以图像类型(byte arrray)保存到数据库的图像。据我所知,我需要将字节数组加载到内存流中,然后加载到silverPDF的XImage中。代码段如下:
Dim memStream As New MemoryStream(100)
memStream.Write(CompDetProp.CompanyLogo, 0, CompDetProp.CompanyLogo.Length)
Dim myimage As XImage = XImage.FromStream(memStream)
Dim x As Double = (250 - myimage.PixelWidth * 72 / myimage.HorizontalResolution) / 2
gfx.DrawImage(myimage, x, 10)
这编译但运行时出现异常“字节数组不是可识别的图像格式。”
我也尝试了以下内容:
Dim memStream As MemoryStream = New MemoryStream(CompDetProp.CompanyLogo, 0, CompDetProp.CompanyLogo.Length)
Dim myimage As XImage = XImage.FromStream(memStream)
Dim x As Double = (250 - myimage.PixelWidth * 72 / myimage.HorizontalResolution) / 2
gfx.DrawImage(myimage, x, 10)
第二个代码块在使用前将内存流关闭 - 据我所知。
如何将图像转换为silverPDF XImage在关闭之前以正确格式读取的流?
答案 0 :(得分:0)
来自PDFsharp Expert的评论后,我发现我使用的图片是.png文件。我将图像保存为.jpg并且代码有效。我现在在我的发票上有一张图片(虽然需要进行尺寸限制以确保正确贴合)。谢谢PDFsharp专家。