vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: obere linke Ecke des Bildes nach Drehung ermitteln 
Autor: Manfred X
Datum: 12.02.15 20:48

Die RotateFlip-Methode der Bitmap dreht immer die gesamten Bild-Daten, die die Bitmap enthält.
In einem Control angezeigte Ausschnitte werden dabei nicht berücksichtigt.
Den korrespondierenden Ausschnitt mußt Du danach neu berechnen.

Vielleicht helfen Dir dabei diese Routinen ...

    Private Function ComputeRotatedPoint(ByVal p As Point, _
        ByVal width As Integer, ByVal height As Integer, _
        ByVal rf As RotateFlipType) As Point
 
 
        'p               Punkt in der unrotierten Bitmap
        'Width, Height   Abmessungen der unrotierten Bitmap
        'Rückgabe: Position des Punktes p in der rotierten Bitmap
 
        Dim ret As Point
        Select Case rf
            Case RotateFlipType.Rotate90FlipNone
                ret = New Point(height - p.Y - 1, p.X)
            Case RotateFlipType.Rotate180FlipNone
                ret = New Point(width - p.X - 1, height - p.Y - 1)
            Case RotateFlipType.Rotate270FlipNone
                ret = New Point(p.Y, width - p.X - 1)
            Case Else
                ret = Nothing
        End Select
 
        Return ret
    End Function
 
 
    Private Function ComputeRotatedRectangle(ByVal rect As Rectangle, _
                                             ByVal width As Integer, height As _
                                             Integer, _
                                             ByVal rf As RotateFlipType) As _
                                             Rectangle
 
        'Bestimmung eines Rectangle nach der Rotation
 
        'rect           Rechteck unrotiert
        'width, height  Abmessungen der unrotierten Bitmap
 
        'Eckpunkte Original-Rechteck
        Dim xleft As Integer = rect.X
        Dim xright As Integer = rect.X + rect.Width - 1
        Dim ytop As Integer = rect.Y
        Dim ybottom As Integer = rect.Y + rect.Height - 1
 
        'gegenüberliegende Eckpunkte des rotierten Rechtecks
        Dim topleft As Point = _
               ComputeRotatedPoint(New Point(xleft, ytop), width, height, rf)
        Dim bottomright As Point = _
               ComputeRotatedPoint(New Point(xright, ybottom), width, height, _
               rf)
 
        'Rectangle-Parameter ermitteln
        Dim ret As New Rectangle
        ret.Location = New Point(Math.Min(topleft.X, bottomright.X), _
                                 Math.Min(topleft.Y, bottomright.Y))
 
        ret.Size = New Size(Math.Abs(topleft.X - bottomright.X) + 1, _
                            Math.Abs(topleft.Y - bottomright.Y) + 1)
 
        Return ret
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
obere linke Ecke des Bildes nach Drehung ermitteln1.666Bazi12.02.15 08:46
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.228Manfred X12.02.15 09:19
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.290Bazi12.02.15 09:33
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.162Manfred X12.02.15 09:50
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.150Bazi12.02.15 10:57
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.113Manfred X12.02.15 11:10
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.090Bazi12.02.15 11:36
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.122Manfred X12.02.15 12:19
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.090Bazi12.02.15 12:34
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.312Manfred X12.02.15 20:48
Re: obere linke Ecke des Bildes nach Drehung ermitteln1.100Bazi13.02.15 20:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel