1

バックグラウンド

Image.FromFile を使用して jpeg をアプリにロードしています。画像は、エクスプローラー、Windows 画像ビューアー、Photoshop、その他すべてで縦向きになっています。Image.FromFileでロードすると、C#はランドスケープモードであることを通知します(高さと幅が間違っています)。そのため、後で画像を操作して保存しようとすると、画像の向きが間違っています回転して歪んでいますが、これはあってはならないことです。

質問 Image.FromFile が Exif データの向きを通知するかどうか知っている人はいますか? または、これを引き起こしている可能性のあるバグや「機能」を知っている人はいますか?

PS 私はm_img = Image.FromFile(file);、ロード直後にビジュアルスタジオでウォッチを使用して高さと幅を使用およびチェックしており、クローンを使用してビットマップに変換された後に画像を保存し直しています。m_out.Save(g_target + "\\" + m_file, m_enc, m_enc_params);

4

1 に答える 1

2

これは、Explorer、Windows Photo Viewer、Photoshop などのプログラムが Camera Orientation EXIF プロパティを尊重しているように聞こえますが、GDI は明らかにそうではありません。

したがって、実際には、Explorer、WPV、Photoshop は実際には間違っています。保存されているとおりに画像を表示するのではなく、読み込まれた後に画像の回転を実行しているためです。

EXIF ライブラリを使用して回転プロパティを探し、画像の読み込み中に適切な変換を適用することをお勧めします。

于 2013-03-05T20:29:34.187 に答える