iPhone画像の表示について への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 N88-BASIC  (社会人) 投稿日時 2019/12/6 21:26:13
kiku さん、情報ありがとうございます。

ご提供いただいたリンク先を拝見しました。

画像ファイルのプロパティは一応調べて情報を探してみたんですが、Windows のプロパティ情報では表示されない Exif に画像の回転情報があるそうです。

目的のプログラムでは撮影日を取得するために Exif を読み込んでいますので、目的の情報を取得できそうです。その後、画像の回転処理を組み込んでみたいと思います。

今後ともよろしくお願いいたします。
投稿者 kiku  (社会人) 投稿日時 2019/12/6 13:09:06
検索しただけですが、下記が参考になりそうです。
https://blog.shibayan.jp/entry/20140428/1398688687
投稿者 N88-Basic  (社会人) 投稿日時 2019/12/6 12:29:11
Windows 10 Home(64) Ver 1909 + Visual Studio 2019 の開発環境でアプリを作成しています。

iPhone で撮影した画像を、OneDrive に保存した画像(iPhone の onedrive アプリ等でアップロード)を表示するアプリを作成していますが、撮影した画像は上下が反転して表示されます。Windows 添付のフォトやペイントでは問題ありません。

撮影状態がiPhone 横向きで左側がシャッターボタンの場合に上下反転します。
右側シャッターボタンの場合は問題ありません。向きから言えば正常かもしれませんが、iPhone 上は上下逆転しません。

iPhone を PC に接続してフォルダーを見ると上下逆転しますが、フォトなどでは問題ありません

作成したアプリは以下のようなものです。上下が反転を回避する方法があればご教授ください。
※iPhone から OneDrive へは Mac にエアドロップ して、Onedrive にアップロードしています。

   '----------------------------------------------------------------------------------------------
    Private Sub ShowImage(ByVal sFileName As String, ByVal picBox As PictureBox)
        Dim GetImage As Image = LoadImage(sFileName)
        Dim Canvas As Bitmap = New Bitmap(picBox.Width, picBox.Height)
        Dim g As Graphics = Graphics.FromImage(Canvas)

        g.DrawImage(GetImage, 0, 0, picBox.Width, picBox.Height)
        g.Dispose()
        picBox.Image = Canvas

    End Sub
' 以下の関数はDobon.net さんのサンプルを利用させていただいております。
    '----------------------------------------------------------------------------------------------
    Public Shared Function LoadImage(ByVal filename As String) As System.Drawing.Image
        Try
            Dim fs As New System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read)
            Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(fs)
            fs.Close()
            Return img
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

以上、よろしくお願いします。