vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Fortgeschrittene
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen 
Autor: Manfred X
Datum: 01.12.17 16:31

Hallo!

Ich vermute, Deine kombinierten Teilbilder umfassen auch den
(weißen) Hintergrund Deiner Picturebox.

Hier eine grob getestete triviale Methode, um Randbereiche
einer bestimmten Farbe aus einer Bitmap zu entfernen.
   Public Function IsEqual(col1 As Color, _
                                  col2 As Color) As Boolean
        If col1.R <> col2.R Then Return False
        If col1.G <> col2.G Then Return False
        If col1.B <> col2.B Then Return False
        Return True
   End Function
 
 
   Public Function RemoveOutRegion(ByVal bmp As Bitmap, _
                          ByVal OutRegionColor As Color) As Bitmap
 
      Dim topleft As New Point(0, 0)
      Dim bottomright As New Point(bmp.Width - 1, bmp.Height - 1)
 
      Dim found As Boolean = False
      Dim i, k As Integer
      k = -1
      Do
         k += 1
         If k = bmp.Width Then
            k = 0 : i += 1
            If i = bmp.Height Then Return Nothing
         End If
 
         found = Not IsEqual(bmp.GetPixel(k, i), OutRegionColor)
     Loop Until found
     If Not found Then Return Nothing
     topleft = New Point(k, i)
 
     found = False
     k = bmp.Width : i = bmp.Height - 1
     Do
        k -= 1
        If k = -1 Then
           k = bmp.Width - 1 : i -= 1
           If i = -1 Then Return Nothing
        End If
        found = Not IsEqual(bmp.GetPixel(k, i), OutRegionColor)
     Loop Until found
 
     bottomright = New Point(k, i)
 
     Dim rect_source As New Rectangle _
        (topleft, New Size(bottomright.X - topleft.X, bottomright.Y - _
        topleft.Y))
 
     If rect_source.Width < 2 OrElse _        
        rect_source.Height < 2 Then Return Nothing
 
     Dim rect_dest As New Rectangle(New Point(0, 0), rect_source.Size)
     Dim bmp_center As New Bitmap(rect_source.Width, rect_source.Height)
 
     Using g As Graphics = Graphics.FromImage(bmp_center)
        g.DrawImage(bmp, rect_dest, rect_source, GraphicsUnit.Pixel)
     End Using
 
     Return bmp_center
 
  End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bilder aus verschiedenen PictureBoxen zusammenfügen1.545RedFrog01.12.17 12:13
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen901Manfred X01.12.17 12:19
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen898RedFrog01.12.17 12:24
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen944Manfred X01.12.17 12:28
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen950RedFrog01.12.17 12:52
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen950Manfred X01.12.17 13:05
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen943RedFrog01.12.17 13:25
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen931Manfred X01.12.17 13:39
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen1.009RedFrog01.12.17 15:06
Re: Bilder aus verschiedenen PictureBoxen zusammenfügen997Manfred X01.12.17 16:31

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-2024 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