0

画像へのパスを指定すると、「画像を読み取れませんでした」というメッセージが表示されます。間違ったパスがあるかどうかを確認したかったので、このパスをテスト用に作成したものに変更しました。この後、画像が見つからないというメッセージが表示されます。

したがって、実際には正しいパスを持っているようで、以前にローカルマシンで問題なく(ただし別のフォルダーで)これを試しました。サーバーで試したときに問題が発生し、そのフォルダー内のすべての画像を読み込めませんでした。これは、フォルダーのアクセス許可などと関係がありますか? 画像が読めないのはなぜですか?

4

2 に答える 2

0

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ツールの1つを使用して画像を保存すると、問題が発生するようです。

他の点から - 新しいバージョンの Windows はこれを正しく処理します。この問題はWindows Server 2008 R2でのみ再現されたため、更新によって問題が解決される可能性があります。

于 2016-08-16T10:15:58.637 に答える
0

権限に関連している可能性があります。アプリケーションは完全信頼で実行されていますか? IIS アプリケーション? サービス?ローカル システム ユーザー アカウントを使用してみてください。それが機能する場合は、アクセス許可の問題です。

画像フォーマットの問題かもしれません。PDFsharp は、オペレーティング システム/フレームワークに依存して画像を読み取ります。GDI+ ビルドから WPF ビルドに、またはその逆に切り替えると、違いが生じる可能性があります。

ルーチン「private void CalculateImageDimensions()」で例外がキャッチされます。おそらく、例外をメッセージボックスに表示するか、ファイルに保存できます。これは、何が問題なのかを特定するのに役立ちます。

于 2012-08-14T07:40:02.140 に答える