CreateBitmap() - Parameterfrage ...



  • Moin,

    ich übersetze gerade die Funktion "CreateBitmap()" vom Englischen ins Deutsche.

    Dabei scheitere ich an dem letzten Parameter:

    lpvBits
        [in] Pointer to an array of color data used to set the colors in a rectangle of pixels. Each [b]scan line[/b] in the rectangle must be [b]word aligned[/b]
             (scan lines that are not word aligned must be padded with zeros). If this parameter is NULL, the contents of the new bitmap is undefined.
    

    Was, bitte, habe ich unter "scan line" und word aligned" zu verstehen ?
    Kann mir das jemand verdeutschen ???

    Ich habe schon in Übersetzerforen nachgefragt, aber dort wusste man auch nicht so recht.

    Bis jetzt habe ich es so:

    Zeiger auf ein Array mit Farbdaten die benutzt werden sollen, um die Farben in einem Rechteck aus Pixeln zu setzen. Jede
    		aus dem Rechteck eingelesene Zeile /must be word aligned/ (eingelesene Zeilen die nicht /word aligned/ sind müssen mit Nullen gefüllt werden).
    		Wird ein NULL-Zeiger als Parameter gesetzt, ist der Inhalt der Bitmap undefiniert.
    

    Vielen Dank im Voraus.

    Gruß
    Greenhorn



  • "word alligened" heisst "auf die Länge von word ausgerichtet". Ist das nicht der Fall, müssen Nullen eingefügt werden. Deutsche Texte sind manchmal schwieriger, wenn sie präzise sein sollen.



  • Ein Wort ist die grundlegende Verarbeitungseinheit des Prozessors. Bei Windoof ist dies in der Tat sehr verwirrend weil der Datentyp WORD in Wirklichkeit ein short ist und DWORD das echte Wort ist. Aber word aligned heißt in diesem falle die daten müssen auf einer memory adresse ausgerichtet sein, die ein vielfaches von 4 byte ist.



  • Vielen Dank, ihr beiden.

    Jetzt sehe ich schon klarer ... 🙂

    Kann man das so als korrekt ansehen ?

    Zeiger auf ein Array mit Farbdaten die benutzt werden sollen, um die Farben in einem Pixel-Rechteck zu setzen. Jede
    		aus dem Rechteck eingelesene Zeile muss der Länge von einem oder mehreren Wörtern (4 bytes) entsprechen (andernfalls
    		sind die Zeilen entsprechend mit Nullen zu füllen).
    		Wird ein NULL-Zeiger als Parameter gesetzt, ist der Inhalt der Bitmap undefiniert.
    

    (Da habe ich mir vielleicht etwas eingehandelt ... 🙄 )

    Gruß



  • Hallo,

    C++Greenhorn schrieb:

    Kann man das so als korrekt ansehen ?

    Zeiger auf ein Array mit Farbdaten die benutzt werden sollen, um die Farben in einem Pixel-Rechteck zu setzen. Jede
    		aus dem Rechteck eingelesene Zeile muss der Länge von einem oder mehreren Wörtern (4 bytes) entsprechen (andernfalls
    		sind die Zeilen entsprechend mit Nullen zu füllen).
    		Wird ein NULL-Zeiger als Parameter gesetzt, ist der Inhalt der Bitmap undefiniert.
    

    Nein, meistens hat jede Zeile des Pixelrechtecks die Länge "Vielfaches von 2 Bytes" (ein WORD besteht aus 16 Bits), es sei denn, man hat eine monochrome Bitmap, dann muss die Länge ein "Vielfaches von 4 Bytes" sein, siehe Abschnitt "BITMAP" hier:

    http://www.flounder.com/msdn_documentation_errors_and_omissions.htm

    MfG,

    Probe-Nutzer



  • Danke für den Hinweis, jetzt ist die Verwirrung komplett 😃

    Gruß
    Greenhorn


Anmelden zum Antworten