Benutzer mit den meisten Antworten
Ich würde gerne ein Objekt (bitmap array) umgewandelt in eine Region, mit Farbe füllen.

Frage
-
Nach der Anwendung eines gefundenen Codes kann ich zumindest ein gescantes Bild darstellen.
Public Class Form1 Sub LockUnlockBitsExample(ByVal e As PaintEventArgs) 'Create a new bitmap. Dim bmp As Bitmap = New Bitmap("C:\entwurf.bmp") 'Lock the bitmap's bits. Dim rect As Rectangle = New Rectangle(0, 0, bmp.Width, bmp.Height) Dim bmpData As System.Drawing.Imaging.BitmapData = bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, bmp.PixelFormat) 'Get the address of the first line. Dim ptr As IntPtr = bmpData.Scan0 'Declare an array to hold the bytes of the bitmap. Dim bytes As Integer = Math.Abs(bmpData.Stride) * bmp.Height Dim rgbValues(bytes) As Byte 'Copy the RGB values into the array. System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes) 'Set every third value to 255. A 24bpp bitmap will look red. For counter As Integer = 2 To rgbValues.Length - 1 Step 3 rgbValues(counter) = 255 Next 'Copy the RGB values back to the bitmap System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes) 'Unlock the bits. bmp.UnlockBits(bmpData) 'Draw the modified image. e.Graphics.DrawImage(bmp, 4, 4) End Sub Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint LockUnlockBitsExample(e) End Sub End Class
https://1drv.ms/u/s!AuqiErX9tbF2kiPSnOG-ShoW9TyO?e=MnuqFY
Der Link ist das Bild für den Pfad C:\entwurf.png
Ich würde die darstellbare Form mit Farbe füllen. Um eine Möglichkeit zu finden habe ich die FillRegion Methode versucht umzusetzen.
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.graphics.fillregion?view=netframework-4.8
- Bearbeitet Stefan Mihael Rihar Sonntag, 27. Oktober 2019 19:27 Ich war mir nicht sicher nach der Anwendung einen Link einzufügen auch einen Link erreicht zu haben, deswegen klickte ich auf senden und ohne Erfolg einen Link zu sehen danach auf bearbeiten.
- Bearbeitet Stefan FalzModerator Sonntag, 27. Oktober 2019 20:30 Links als Links formatiert
Antworten
-
Hallo Stefan,
Kannst Du Deinen Code angeben, in dem die FillRegion-Methode aufgerufen wurde? Wenn die oben genannte Methode Deinen Anforderungen nicht entspricht, kannst Du versuchen, die FloodFill-Methode zu verwenden, wie in diesem Artikel beschrieben wird:
Painting Fill FunctionGruß,
Ivan Dragov
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 29. Oktober 2019 08:07
- Als Antwort markiert Stefan Mihael Rihar Dienstag, 29. Oktober 2019 11:15
Alle Antworten
-
Hallo Stefan,
Kannst Du Deinen Code angeben, in dem die FillRegion-Methode aufgerufen wurde? Wenn die oben genannte Methode Deinen Anforderungen nicht entspricht, kannst Du versuchen, die FloodFill-Methode zu verwenden, wie in diesem Artikel beschrieben wird:
Painting Fill FunctionGruß,
Ivan Dragov
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 29. Oktober 2019 08:07
- Als Antwort markiert Stefan Mihael Rihar Dienstag, 29. Oktober 2019 11:15
-
Guten Tag Ivan,
ich habe den Link den du beigetragen hast und die Informationen zu denen er führte mit meinem Wissen kombiniert.
John Anthony Oliver hat einen Code zur Verfügung gestellt den ich übernommen habe. Die Zeilen
#Region "MakeBitmap" Private Sub MakeBitmap() End Sub #End Region ' MakeBitmap
habe ich mit meinen Zeilenm_Bitmap = New Bitmap("C:\entwurf.png") Dim test_zeilenumbruch As Graphics = Graphics.FromImage(m_Bitmap) test_zeilenumbruch.Dispose()
ergänzt und somit mein Ziel erreicht. Ich konnte nun jede Beliebige geschlossene Form sowohl innen wie aussen mit Farbe füllen.
Das nächste Ziel, jede beliebige Form in eine andere Form zu ändern, scheint nun da ich ein wenig die Möglichkeiten von VB.Net kennen gelernt habe nicht nut theorie zu sein.
Danke für deine Hilfe.
Mit freundlichem Gruß
Stefan