Bild zuschneiden

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Wulf.

    Bild zuschneiden

    Hi,
    ich habe eine Frage, ich habe länger nicht mehr vb gemacht und habe etwas die Kentnisse verloren^^

    Also ich habe ein Bild und möchte 2 Teile daraus ausschneiden. Ein Teil soll um 90 ° gedreht werden, und dann beide Teile wieder auf eine bestimmte Stelle eines neuen Bitmaps gemalt werden. Das Bild soll man dann abspeichern.

    Also vorher:
    ######+++
    ######+++
    ######+++
    ######+++

    Nachher:
    ######
    ######
    ######
    ######
    ++++
    ++++
    ++++
    ok also das schneiden klappt jetzt.

    VB.NET-Quellcode

    1. Private Shared Function GetRectangle(ByVal Bitmap As Bitmap, ByVal X As Integer, ByVal Y As Integer) As Bitmap
    2. Dim bmp As New Bitmap(260, 722)
    3. Using g1 As Graphics = Graphics.FromImage(bmp)
    4. g1.DrawImage(Bitmap, -X, -Y)
    5. End Using
    6. Return bmp
    7. End Function
    8. 'Die Funktion habe ich gefunden
    9. Dim img As New Bitmap(1024, 1024)
    10. Dim g As Graphics = Graphics.FromImage(img)
    11. g.FillRectangle(Brushes.Black, 0, 0, 1024, 1024)
    12. g.DrawImage(PictureBox1.Image, New Point(0, 0))
    13. Dim imgu As New Bitmap(260, 722)
    14. Dim gu As Graphics = Graphics.FromImage(imgu)
    15. imgu = GetRectangle(PictureBox1.Image, 1024, 0)
    16. gu.RotateTransform(90)
    17. g.DrawImage(imgu, 0, 724)
    18. PictureBox2.Image = img


    Nur das drehen mag nicht klappen?

    EDIT: Und kann man ein Bild mit 8bit, 256 Farben und indiziert abspeichern?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pes1899.vb“ ()

    Das Drehen kannste mit ner Matrix anstellen.

    VB.NET-Quellcode

    1. Dim matrix As New System.Drawing.Drawing2D.Matrix
    2. matrix.RotateAt(90, New Point(0, 0))
    3. g.Transform = matrix
    4. 'Zeichnen des Bildes...


    Den Punkt zum drehen musste halt noch richtig wählen.

    VB.NET-Quellcode

    1. Dim gu As Graphics = Graphics.FromImage(imgu)
    2. imgu = GetRectangle(PictureBox1.Image, 1024, 0)
    3. Dim matrix As New System.Drawing.Drawing2D.Matrix
    4. matrix.RotateAt(90, New Point(0, 724))
    5. gu.Transform = matrix
    6. g.DrawImage(imgu, 0, 724)


    Geht nicht... es ist zwar der Bildteil an der richtigen stelle aber eben nciht gedreht