Image dreht sich "random"

  • WPF

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    Image dreht sich "random"

    Hi Leute,

    kann mir jemand sagen wieso sich manache bilder um 90 bzw 180° drehen wenn ich diese mit dem Code in ein Image lade?

    Quellcode

    1. Dim Bmp As New BitmapImage
    2. Bmp.BeginInit()
    3. Bmp.UriSource = New Uri(Dateiname)
    4. Bmp.EndInit()
    5. Me.Img_User.Source = Bmp


    ich kann es nicht nachvollziehen warum

    XAML is einfach

    Quellcode

    1. <Image x:Name="Img_User" Height="150" Width="140" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,-60,0,0"/>

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „r0tzi“ ()

    Hallo @r0tzi

    Wirklich? Ich habe das Image-Control schon oft eingesetzt, aber das hatte ich noch nicht. Ich kann dies daher auch nicht reproduzieren.

    Interessant wäre nun: Bei ein und dem selben Bild, sind es da immer die selben "Grad" oder immer und immer wieder wilkürlich?
    Und - von wo stammen die Bilder.

    Was ich mir ja irgendwie vorstellen könnte - ist aber reine spekulation - Das die z.b. von nem Handy kommen und dort Infos drinnen sind wie die Bilder aufgenommen wurden.
    Windoof liest das nämlich glaube ich sogar aus, im Control wirds aber nicht ausgelesen.

    Wie gesagt, nur eine reine vermutung. Wenn du ein Bild hast wo das auftritt kannst du das ja mal hochladen.
    Teste bitte mal mit einem Bild welches du einfach von z.b. google heruntergeladen hast. Ist das dort auch so?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Das ist ne gute Frage. Ich weis nicht ob mein Handy das genauso speichert.

    Wenn du dem Forum ein Tedtbild hochladen könntest könnten wir versuchen das erstmal zu reproduzieren und dann eine Lösung suchen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Klaro hier bitte sehr. das wird gedreht angezeigt :) in windows ist das bild hochkant, also der oberschenkel ist oben und nicht rechts.
    habs mal getestet... bearbeite ich ein bild, und speichere es z.b. in paint, kommt es richtig!

    *edit* ahahahaa sogar im forum wird es so angezeigt nice! :D
    Bilder
    • CAM00039.jpg

      3,41 MB, 4.160×3.120, 111 mal angesehen
    Du musst selber ermitteln welche Ausrichtung das Bild hat und dann drehen. Windows und viele andere Programme drehen die Bilder automatisch. Den Bildern hinterliegen exif Informationen, in denen drin steht welche Ausrichtung das Bild hat. Heißt:

    1. Exif auslesen
    2. Bild drehen
    3. Bild anzeigen
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hallo

    Ich hab das gerade mal probiert. Es ist tatächlich so das die Exif Infos ignoriert werden.

    Habe das gerade mal probiert. So klappts:

    VB.NET-Quellcode

    1. Dim path As String = "C:\Users\Patschka\Pictures\20190208_153011.jpg"
    2. Dim rotation As Imaging.Rotation = Rotation.Rotate0
    3. Using filestream As New FileStream(path, FileMode.Open)
    4. Dim bitmapFrame As BitmapFrame = BitmapFrame.Create(filestream, BitmapCreateOptions.DelayCreation, BitmapCacheOption.None)
    5. Dim bitmapMetadata As BitmapMetadata = CType(bitmapFrame.Metadata, BitmapMetadata)
    6. If ((Not (bitmapMetadata) Is Nothing) _
    7. AndAlso bitmapMetadata.ContainsQuery("System.Photo.Orientation")) Then
    8. Dim o As Object = bitmapMetadata.GetQuery("System.Photo.Orientation")
    9. If (Not (o) Is Nothing) Then
    10. 'refer to http://www.impulseadventure.com/photo/exif-orientation.html for details on orientation values
    11. Select Case (CType(o, System.UInt16))
    12. Case 6
    13. rotation = Rotation.Rotate90
    14. Case 3
    15. rotation = Rotation.Rotate180
    16. Case 8
    17. rotation = Rotation.Rotate270
    18. End Select
    19. End If
    20. End If
    21. End Using
    22. Dim Bmp As New BitmapImage()
    23. Bmp.BeginInit()
    24. Bmp.UriSource = New Uri(path)
    25. Bmp.Rotation = rotation
    26. Bmp.EndInit()
    27. Me.myImage.Source = Bmp


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ja, so ungefähr. Es werddn eben diese Metadaten geschrieben. Auch GPS Daten usw.
    Schau z.b. mal emin die Dateieigenschaften eines Bilds und gehe auf den Reiter Details.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##