schneller Zugriff auf Bild
-
Guten Tag!
Was ist die schnellste Möglichkeit auf ein Pixel eines Bildes zuzugreifen?
TImage::Pixels[][] ist zu langsam
TBitmap::Scanline[] ist zwar deutlich schneller, aber auch noch zu langsam
gibt es eine schnellere Funktion?
Vielen Dank & Liebe Grüße
-
Man kann doch bestimmt die Pixel schnell rendern lassen.
-
Und wie geht das?
LG
-
ich weiss, das das bei Purebasic auch ging.
Schau doch mal in die msdn.
Da findest du bestimmt was.
-
TImage und TBitmap hört sich stark nach Delphi oder so an?
WinAPI-Möglichkeit:
Bild mittels LoadImage() laden und dabei LR_CREATEDIBSECTION angeben.
Dann kommt man mit GetDIBits() direkt an das Pixel-Array.
-
Ja es ist Borland C++ ... die genannten Funktionen sind mir aber zu langsam und laut den Leuten aus dem C++ Forum gibts keine schnellere Möglichkeit als ScanLine.
Darum frage ich hier mal.
geeky schrieb:
TImage und TBitmap hört sich stark nach Delphi oder so an?
WinAPI-Möglichkeit:
Bild mittels LoadImage() laden und dabei LR_CREATEDIBSECTION angeben.
Dann kommt man mit GetDIBits() direkt an das Pixel-Array.Wie schnell ist diese Möglichkeit?
LG
-
Zugriff aufs Pixel-Array ist sau schnell. Allerdings kostet der Aufruf von LoadImage und GetDIBits was

Probieren geht über studieren
-
Nimm die FreeImage oder die DevIL, da bekommst du "rohe" Zeiger auf das Bild - alles weitere liegt dann bei dir.
-
-
Eine schnelle Möglichkeit wäre, per Offset an das Bitmap-Array des Bildes zu gehen und davon einen Pointer zu ziehen mit dem du manuell durch Pointerinkrementierung durch das Bitmap-Array fährst und die Daten ausliest.
-
Hroudtwolf schrieb:
Eine schnelle Möglichkeit wäre, per Offset an das Bitmap-Array des Bildes zu gehen und davon einen Pointer zu ziehen mit dem du manuell durch Pointerinkrementierung durch das Bitmap-Array fährst und die Daten ausliest.
Kannst du das mal für einen nicht so erfahrenen Programmieren erläutern? Ich habe kein Wort verstanden!
LG & Thanks!
-
hm ... ich probiere nun schon einige Tage, per LoadImage()/GetDIBits() an das Pixel Array zu kommen ohne Erfolg!
Kann mir bitte einer mal ein Einfaches Beispiel schreiben?
Etwas is der Form:LoadImage(...)
...Image[300][400] = Blau
...Das wäre sehr hilfreich!
Liebe Grüße
