【发布时间】:2016-08-16 18:22:54
【问题描述】:
当我指定图像的路径时,我收到一条消息,提示“无法读取图像”。我想看看我是否走错了路,所以我把这条路改成了为了测试而编造的东西。在此之后,我收到一条消息,说找不到图像。
所以,看来我确实有正确的路径,而且我之前在我的本地机器上尝试过这个没有任何问题(但是在另一个文件夹中)。当我在我的服务器上尝试它时出现了问题,它无法加载该文件夹中的所有图像。这与文件夹或类似的权限有关吗?为什么我看不到图片?
【问题讨论】:
当我指定图像的路径时,我收到一条消息,提示“无法读取图像”。我想看看我是否走错了路,所以我把这条路改成了为了测试而编造的东西。在此之后,我收到一条消息,说找不到图像。
所以,看来我确实有正确的路径,而且我之前在我的本地机器上尝试过这个没有任何问题(但是在另一个文件夹中)。当我在我的服务器上尝试它时出现了问题,它无法加载该文件夹中的所有图像。这与文件夹或类似的权限有关吗?为什么我看不到图片?
【问题讨论】:
可能与权限有关。应用程序是否在完全信任的情况下运行? IIS 应用程序?服务?尝试使用本地系统用户帐户 - 如果它可以工作,那就是权限问题。
可能是图片格式的问题。 PDFsharp 依靠操作系统/框架来读取图像。从 GDI+ 构建切换到 WPF 构建或反之亦然可能会有所不同。
在例程“private void CalculateImageDimensions()”中捕获了一个异常。也许您可以在消息框中显示异常或将其保存在文件中。这将有助于找出问题所在。
【讨论】:
PDFSharp 1.32 版本我也遇到过同样的问题。 ImageRenderer出现错误:
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 上重现,因此也许更新可以解决此问题。
【讨论】:
System.Drawing.Image.Save,所以看起来异常发生的地方与你显示的代码sn-p无关。我们尝试实现我们拥有图像文件的所有图像格式 - 我们的集合不包含任何返回 EXIF id 的文件,而且您似乎也没有。论坛中的主题似乎也不相关,因为它与框架报告为 RGB 的 CMYK 图像有关。