Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
E-P-S

Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 22.02.2008, 23:28 Titel: Aufbau Bildpuffer |
|
|
Schon wieder ne Frage.
Ich versuche gerade direkt auf einen Bildpuffer zuzugreifen und frage mich wo exakt die Pixeldaten liegen.
Laut "fbgfx.bi" müsste der Header des Puffers (neue Version) 32 Bytes groß sein. Nur wenn ich direkt ab dort hinein'poke' ist mein Bild irgendwie schräg, sozusagen um einen Pixel pro Zeile verschoben...
Hab ich da irgend einen Denkfehler drin? _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 22.02.2008, 23:36 Titel: |
|
|
Was hast du denn genau darin verändert? (das macht man jetzt übrigens mit eckigen klammern, nicht mit poke...) Evtl hast du ja die padding bytes verändert... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
E-P-S

Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 22.02.2008, 23:43 Titel: |
|
|
Ich glaub ich habs grad selbst rausgefunden. Hat wohl was mit den Bildmaßen zu tun bzw. den daraus resultierenden Bytes pro Zeile, ergo dem Pitch.
Muß das mal noch genauer untersuchen. Trotzdem danke. _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.02.2008, 00:16 Titel: |
|
|
achja, pitch war das, nicht padding... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.02.2008, 02:05 Titel: |
|
|
Pitch wird (soweit ich weiß) zwar nicht auf freebasic.net/wiki erwähnt, allerdings kann man das auch anderweitig erfahren...
Code: | type IMAGE field = 1
union
old as _OLD_HEADER
type as uinteger
end union
bpp as integer
width as uinteger
height as uinteger
pitch as uinteger
_reserved(1 to 12) as ubyte
end type
|
... z.B. aus der fbgfx.bi.
Wenn man nun "Dim bild As fb.Image ptr" schreibt, kann man direkt darauf zugreifen:
Code: | #include "fbgfx.bi"
#define pixel(pic, x, y) *cast(uinteger ptr, (cast(ubyte ptr, pic) + sizeof(fb.image) + x*bild->bpp + y*(bild->pitch)))
Screenres 1024, 768, 24
Dim bild As fb.Image ptr
bild = Imagecreate(123, 345)
Pset bild, (10, 20), &H123456
Print "breite, anzahl bytes pro zeile: ", bild->width & ", " & bild->pitch
Print "Pixel an (10, 20) hat den Farbwert: ",hex(pixel(bild, 10, 20))
sleep
|
_________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
E-P-S

Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 24.02.2008, 02:09 Titel: |
|
|
huiui....da sag ich heftigst DANKE _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
 |
|