web-dev-qa-db-ja.com

単純な.jpg画像を回転できません

Motorola Motoフォンでキャプチャされた画像の特定の部分(Moto One、Moto Z2 Playなど、多くのモデルで問題が発生します)が時計回りに90度回転します。過去15年間、何万もの画像を回転させていたのに、IrfanViewを使って回転させることができません。

私はいつものように画像を回転させます。

  • irfanViewでそれらを開き、
  • 画像はビューポートで時計回りに90度回転します)、
  • 押す l 一度(左に回転)、
  • 画像はビューポートで正しく回転します)、
  • 押す Ctrl+s 保存する、
  • (アクセス権の問題を回避するために)新しい名前を選択し、
  • 新しく保存したファイルをIrfanViewで再度開きます。
  • 画像はビューポートで再び時計回りに90度回転します)。

上記の手順を何度も繰り返すか、同じファイル名を選択して元のファイルを上書きすることができます。すべて無料-画像はファイル内で誤って回転されたままになり、ビューポートでのみ正しく回転されます。

物事をさらに奇妙にするために、私は以下の観察を行いました:

  • 画像は常にIrfanViewで回転します(ファイルから読み取る場合)。
  • total Commander's Viewerで画像は常に回転します(を押す F3 ファイル上)、
  • 画像はMicrosoftペイントで常に正しく表示されます
  • 電子メールメッセージに添付すると画像が回転します(受信者が確認し、回転します)、
  • chrome、Firefox、およびOperaブラウザの新しいタブにドロップすると、画像が回転します。
  • Internet Explorerの新しいタブにドロップすると、画像は常に正しく表示されます。

Microsoft Edgeを確認できませんが、Microsoft関連のソフトウェアでは画像が常に正しく表示され、サードパーティのソフトウェアでは常に回転しているようです。

enter image description here

回転したかどうか?これは、ディスク上のまったく同じファイルから読み取られ、表示されたまったく同じ画像の例です。 ChromeとIrfanViewで回転し、MicrosoftペイントとInternet Explorerで正しく回転しました

2つの異なる.jpg読み取りライブラリ/アルゴリズムがありますか?1つはMicrosoftによって使用され、もう1つはサードパーティソフトウェアで使用され、そのうちの1つは画像を回転させて表示させることができますか?

2
trejder

ほとんどのカメラは [〜#〜] exif [〜#〜] データを画像に追加します。これには、画像に関する多くの情報(カメラモデル、露出設定、ズーム、日付、時刻、場所)が含まれる場合があります。そして重要なのは、あなたの質問にとって、カメラの向きです。

この向きの情報は、写真を正しい回転で表示するために一部の画像ビューアや編集ソフトウェアで使用されますが、すべてではありません...

  • 一部の画像編集ソフトウェアは、実際に画像を変更することなく、要求された回転を考慮してEXIFデータを再書き込みjustします...通常はより多くの写真指向のソフトウェア。このローテーションは、EXIFデータに従うソフトウェアでのみ正しく表示される可能性があります
  • 他の画像編集ソフトウェアは、実際にはEXIFデータをリセットし、画像データを直接操作します。この回転は、すべてのビューアに表示されます。
  • MSペイントは方向データを監視しますが、回転して保存すると、画像データを操作している間、EXIF方向データはそのままになります...これは少し壊れていると思います。
  • 非常に基本的な画像編集ソフトウェアは、EXIFデータを取り除き、画像データを保存justします。これは、[すべて選択]→[コピー]→[新規]→[貼り付け]でシミュレートできます。
  • あなたの質問から、IrfanViewはプレゼンテーションのために画像を一時的に回転させるだけであると提案します-つまり、EXIFデータを変更せず、画像データも変更しません。

回転に問題があり、確認する必要がある場合は、エディターで画像を開き、キャンバス全体を選択して、コピーして新しい画像に貼り付けることをお勧めします。新しい画像(「写真」自体ではなく、EXIFデータなし)を取得したら、必要な回転を実行して保存します。


状況によっては、向きが正しく記録されない可能性があります。たとえば、ほぼ真っ直ぐ下向きまたは上向きに写真を撮る場合、カメラが間違った向きを選択する可能性があります。水準器の泡を考えてください...水平レンズでは向きは明らかに、垂直レンズでは向きは違います。

circular spirit level

3
Attie

このフォーラム投稿jazzmanIrfanViewサポートフォーラム のように、IrfanView自体にはrotation]を処理するための適切なオプションがあります。 EXIFレコードに保存されている情報

対応するオプションは「EXIF方向タグのリセット」と呼ばれ、JPEG形式で(回転した)画像を保存するときに、[名前を付けて保存]ダイアログの他の保存関連オプション内で使用できます。

enter image description here

このスーパーユーザーの回答は 対応するフォーラム投稿 (私自身の発明ではない)の単なるコピーであるためそして Attie 提供された はるかに包括的な答え 私の前にあるので、私はその答えを受け入れられたものとして保持します。

2
trejder