vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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

Fortgeschrittene Programmierung
Re: Ausschnitt eines Bildes im Bild finden 
Autor: Manfred X
Datum: 27.04.16 14:11

Hier die triviale Suche nach einem exakt identischen Ausschnitt.
Option Explicit
 
Dim pic As PictureBox  'Bild
Dim picsel As PictureBox 'zu suchender Ausschnitt
 
 
Private Sub Form_Load()
 
   Set pic = Me.Controls.Add("VB.PictureBox", "pb")
   Set picsel = Me.Controls.Add("VB.PictureBox", "pbsel")
   pb_param pic
   pb_param picsel
 
   'Hier ein Bild laden
   pic.Picture = LoadPicture("C:\daten\test.jpg")
 
   picsel.Top = pic.Top + pic.Height + 5
 
   'Ausschnitt der Größe 80*100 Pixel 
   picsel.Width = 80 * 15: picsel.Height = 100 * 15
 
   'Ausschnitt erstellen (ab Position 150, 100)  
   picsel.PaintPicture pic.Picture, 0, 0, 80, 100, 150, 100, 80, 100
 
   Me.Height = pic.Height + picsel.Height + 500
 
   'Suche nach der Position des Ausschnitts (ggf. linke obere Ecke)
   Dim x%, y%
   FindSelection x, y 'Hier sollten 150/100 gefunden werden
 
End Sub
 
 
Private Sub pb_param(pbox As PictureBox)
  With pbox
    .Visible = True: .AutoSize = True: .AutoRedraw = True:
    .ScaleMode = vbPixels: .BorderStyle = vbBSNone
  End With
End Sub
 
 
Private Sub FindSelection(ByRef x%, ByRef y%)
 
   Dim i%, k%, l%, m%, l1%, m1%, id As Boolean
 
   x = -1: y = -1 'Init.
 
   'Bildschleife 
   For i = 0 To pic.ScaleHeight - picsel.ScaleHeight
      For k = 0 To pic.ScaleWidth - picsel.ScaleWidth
         id = True
         'Schleife über Bildausschnitt      
         For l = 0 To picsel.ScaleHeight - 1
            l1 = l + i
            For m = 0 To picsel.ScaleWidth - 1
               m1 = m + k
               If pic.Point(m1, l1) <> picsel.Point(m, l) Then
                  'Abbruch bei Abweichung
                  id = False: GoTo nextpos
               End If
            Next m
         Next l
nextpos:
         If id Then x = i: y = k: Exit Sub 'Ausschnitt gefunden
     Next k
  Next i
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ausschnitt eines Bildes im Bild finden2.798jopeku27.04.16 12:07
Re: Ausschnitt eines Bildes im Bild finden1.781Manfred X27.04.16 13:01
Re: Ausschnitt eines Bildes im Bild finden1.798Manfred X27.04.16 14:11
Re: Ausschnitt eines Bildes im Bild finden1.845jopeku27.04.16 14:46
Re: Ausschnitt eines Bildes im Bild finden1.957Manfred X27.04.16 14:57
Re: Ausschnitt eines Bildes im Bild finden1.815jopeku27.04.16 14:57
Re: Ausschnitt eines Bildes im Bild finden1.843jopeku27.04.16 15:01
Re: Ausschnitt eines Bildes im Bild finden1.757jopeku27.04.16 15:07
Re: Ausschnitt eines Bildes im Bild finden1.831Manfred X27.04.16 15:11
Re: Ausschnitt eines Bildes im Bild finden1.806jopeku27.04.16 15:19
Re: Ausschnitt eines Bildes im Bild finden1.813Manfred X27.04.16 15:29
Re: Ausschnitt eines Bildes im Bild finden1.845jopeku27.04.16 15:37
Re: Ausschnitt eines Bildes im Bild finden1.844Manfred X27.04.16 15:40
Re: Ausschnitt eines Bildes im Bild finden2.194jopeku27.04.16 16:05
Re: Ausschnitt eines Bildes im Bild finden1.745Manfred X27.04.16 16:13
Re: Ausschnitt eines Bildes im Bild finden1.801jopeku27.04.16 16:45
Re: Ausschnitt eines Bildes im Bild finden1.821Manfred X27.04.16 16:56
Re: Ausschnitt eines Bildes im Bild finden2.079jopeku27.04.16 17:03
Re: Ausschnitt eines Bildes im Bild finden2.110Manfred X27.04.16 17: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-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