Aufgrund der Anforderungen von dem, was ich versuche zu tun, muss ich meine eigene benutzerdefinierte Klasse für Pixel haben. Für jedes Pixel I haben:So erstellen Sie ein schnelles benutzerdefiniertes Pixelformat
byte red
byte green
byte blue
int brightness
int X
int Y
I die Koordinaten müssen, so kann ich Arrays bilden, die nur aus den Pixeln bestehen, die I zeichnen müssen. Wenn ich zum Beispiel eine Linie habe, die sich diagonal bewegt, möchte ich nur eine eindimensionale Anordnung der Pixel haben, die ich zeichnen muss; Ich möchte nicht den Rest der Pixel scannen müssen, damit ich unnötiges Scannen vermeiden kann. In meinem aktuellen Fall werde ich viele Polygone haben, die auf ein Bild in einer bestimmten Reihenfolge und auf spezifische Weise angewendet werden müssen. Dies wird für eine Spielengine sein, also muss ich versuchen, das Scannen durch Pixel zu vermeiden, die sowieso nicht verwendet werden.
Da die Daten in der Pixel-Klasse jedoch so sind, wird es langsam. Wirklich langsam. Vielleicht hundertmal langsamer als das Standard-Pixelformat, mit dem Bitmaps erstellt werden. Außerdem sind Änderungen an den Pixeln sehr langsam.
Wie kann ich die Erstellung und Bearbeitung von Pixeln beschleunigen und gleichzeitig alle Informationen für Farbe, Helligkeit und Koordinaten in jedem Pixel speichern? Eine Nebenfrage: Gibt es einen Ort, an dem erklärt wird, wie die Pixelformate in System.Drawing funktionieren?