Moin Leute,
im Zusammenhang mit einem größeren Projekt ist mir folgendes aufgefallen:
Ich erzeuge eine 4x4-Pixel große Bitmap mit Schachbrett-Muster, diese wird angezeigt.
Mit DrawImage() zoome ich sie um den Faktor 50 und zeige sie ebenfalls an.
Spoiler anzeigen
Das Ergebnis spricht für sich:
und die gespeicherte Bitmap
Der rote Rand ist der Hintergrund der befüllten Bitmap.
Der Output ist mit beiden Überladungen von DrawImage() gleich.
Eigentlich würde ich erwarten, dass der Output ein "vollständiges" Schachbrett ist und der Hintergrund nicht zu sehen.
Wenn ich den Ursprung um 25, 25 verlagere, ist die Bitmap unten rechts vollständig und oben links ist der rote Hintergrund.
Wie lässt sich das lösen?
*Topic verschoben*
im Zusammenhang mit einem größeren Projekt ist mir folgendes aufgefallen:
Ich erzeuge eine 4x4-Pixel große Bitmap mit Schachbrett-Muster, diese wird angezeigt.
Mit DrawImage() zoome ich sie um den Faktor 50 und zeige sie ebenfalls an.
VB.NET-Quellcode
- Public Class Form1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim bmp1 = New Bitmap(4, 4)
- For x = 0 To 3
- For y = 0 To 3
- bmp1.SetPixel(x, y, If((((x + y) And 1) = 0), Color.White, Color.Black))
- Next
- Next
- PictureBox1.Image = bmp1
- Dim bmp2 = New Bitmap(200, 200)
- Using g = Graphics.FromImage(bmp2)
- g.Clear(Color.Red) ' Hintergrund signifikant färben
- g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor
- g.DrawImage(bmp1, 0, 0, 200, 200)
- 'g.DrawImage(bmp1, New Rectangle(0, 0, 200, 200), New Rectangle(0, 0, 4, 4), GraphicsUnit.Pixel)
- End Using
- bmp2.Save("c:\Temp\Test.png", System.Drawing.Imaging.ImageFormat.Png)
- PictureBox2.Image = bmp2
- End Sub
- End Class
und die gespeicherte Bitmap
Der rote Rand ist der Hintergrund der befüllten Bitmap.
Der Output ist mit beiden Überladungen von DrawImage() gleich.
Eigentlich würde ich erwarten, dass der Output ein "vollständiges" Schachbrett ist und der Hintergrund nicht zu sehen.
Wenn ich den Ursprung um 25, 25 verlagere, ist die Bitmap unten rechts vollständig und oben links ist der rote Hintergrund.
Wie lässt sich das lösen?
*Topic verschoben*
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert!
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()