"Image could not be read" in MigraDoc



当我指定图像的路径时,我收到一条消息,指出"无法读取图像"。我想看看我是否有错误的路径,所以我将这条路径更改为只是为了测试而编造的东西。在此之后,我收到一条消息,指出找不到图像。

因此,似乎我实际上确实有正确的路径,并且我之前在本地计算机上尝试过,没有任何问题(但是在另一个文件夹中)。当我在服务器上尝试它时,发生了此问题,它无法加载该文件夹中的所有图像。这与文件夹的权限或类似的东西有什么关系吗?为什么我无法阅读图像?

可能与权限有关。应用程序是否在完全信任环境中运行?IIS 应用程序?服务?尝试使用本地系统用户帐户 - 如果它有效,则这是一个权限问题。

可能是图像格式的问题。PDFsharp依靠操作系统/框架来读取图像。从 GDI+ 生成切换到 WPF 生成,反之亦然可能会有所作为。

程"private void CalculateImageDimensions()"中捕获了一个异常。也许您可以在消息框中显示异常或将其保存在文件中。这将有助于确定出了什么问题。

我在PDFSharp 1.32版本中遇到了同样的问题。错误发生在图像渲染器中:

A generic error occurred in GDI+. 
 at System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
 at PdfSharp.Pdf.Advanced.PdfImage.InitializeJpeg()
 at PdfSharp.Pdf.Advanced.PdfImage..ctor(PdfDocument document, XImage image)
 at PdfSharp.Pdf.Advanced.PdfImageTable.GetImage(XImage image)
 at PdfSharp.Pdf.PdfPage.GetImageName(XImage image)
 at PdfSharp.Drawing.Pdf.XGraphicsPdfRenderer.GetImageName(XImage image)
 at PdfSharp.Drawing.Pdf.XGraphicsPdfRenderer.Realize(XImage image)
 at PdfSharp.Drawing.Pdf.XGraphicsPdfRenderer.DrawImage(XImage image, XRect destRect, XRect srcRect, XGraphicsUnit srcUnit)
 at PdfSharp.Drawing.XGraphics.DrawImage(XImage image, XRect destRect, XRect srcRect, XGraphicsUnit srcUnit)
 at MigraDoc.Rendering.ImageRenderer.Render()

正如我在XImage.cs:241中看到的那样,EXIF格式不受官方支持:

case "{B96B3CB2-0728-11D3-9D7B-0000F81EF32E}":  // exif
default:
    throw new InvalidOperationException("Unsupported image format.");

不幸的是,GDI+ 将我的 exif 格式图像定义为 JPEG,因此不会触发预期的情况。

目前我没有找到任何理想的解决方案。在开发人员论坛(http://forum.pdfsharp.net/viewtopic.php?f=3&t=3304)上,您可以找到有关类似问题的更多信息。似乎出现问题是因为使用Adobe工具之一保存图像。

从其他角度来看 - 较新版本的Windows正确处理此问题,此问题仅在Windows Server 2008 R2上重现,因此也许更新可以解决此问题。

最新更新