Bereiche von Bildern kopieren

  • VB.NET
  • .NET (FX) 4.0

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

    Bereiche von Bildern kopieren

    Ich will Bereiche von Bildern kopieren und hab das geschrieben

    VB.NET-Quellcode

    1. ''' <summary>
    2. Public Function GetImageArea(ByVal source As Bitmap, ByVal start As Point, ByVal areasize As Size) As Image
    3. Dim readyImage As New Bitmap(areasize.Width, areasize.Height)
    4. For x = start.X To start.X + areasize.Width - 1
    5. For y = start.Y To start.Y + areasize.Height - 1
    6. readyImage.SetPixel(x, y, source.GetPixel(x, y))
    7. Next
    8. Next
    9. Return readyImage
    10. End Function

    wenn ich es so aufrufe funktioniert es auch:

    VB.NET-Quellcode

    1. PictureBox2.Image = GetImageArea(New Bitmap(PictureBox1.Image), New Point(0, 0), New Size(8, 8))

    so aber nicht:

    VB.NET-Quellcode

    1. ​PictureBox2.Image = GetImageArea(New Bitmap(PictureBox1.Image), New Point(4, 4), New Size(12, 12))


    wieso nicht? was ist da falsch?
    Das mit Get und Set Pixel ist ziemlicher bescheiden..

    Probiers mal so, ist jetzt aus dem Kopf:

    VB.NET-Quellcode

    1. ​Private Function CopyImageArea(source As Bitmap, affectedRectangle As Rectangle) As Bitmap
    2. Dim bmp = New Bitmap(affectedRectangle.Width, affectedRectangle.Height)
    3. Dim g = Graphics.FromImage(bmp)
    4. g.DrawImage(source, New Rectangle(0, 0, bmp.Width, bmp.Height), affectedRectangle, GraphicsUnit.Pixel)
    5. g.Dispose()
    6. Return bmp
    7. End Function