Full-stack webdeveloper in Groningen
Je *zou* het blok geheugen waar dat array in staat in 1x kunnen dumpen naar die BMP. Je moet alleen wel zeker weten dat je het geheugen op de BMP-manier hebt ingedeeld.
Desnoods maak je eerst de BMP aan in een blok geheugen, en dump je die naar het bestand.
Desnoods maak je eerst de BMP aan in een blok geheugen, en dump je die naar het bestand.
Siditamentis astuentis pactum.
Ik hoef niet perse een BMP ervan te maken hoor, ik wil em alleen op het scherm laten zien.
Het probleem met een BMP is dat ie van onder naar boven wordt ingelezen
Het probleem met een BMP is dat ie van onder naar boven wordt ingelezen
Full-stack webdeveloper in Groningen
Ik kan je hier niet mee helpen, maar ik heb wel een vraag. Waarom hebben ze dat zo ontworpen? (dat hij van onder naar boven word gelezen?)
Op het scherm laten zien? Dan maak je toch een TImage ofzoiets, en dan ga je fijn in een dubbel loopje de pixels invullen?
Zoiets dan he.
code:
1
2
3
4
5
| for x:=1 to 300 do begin
for y:=1 to 200 do begin
Image.Bitmap[x,y]:=JeArray[x,y]
end;
end; |
Zoiets dan he.
Siditamentis astuentis pactum.
Verwijderd
Dat is Traaaaaaaaaaaaaaaag.. je eerste idee is beter..Op woensdag 18 juli 2001 09:19 schreef Varienaja het volgende:
Op het scherm laten zien? Dan maak je toch een TImage ofzoiets, en dan ga je fijn in een dubbel loopje de pixels invullen?
code:
1 2 3 4 5for x:=1 to 300 do begin for y:=1 to 200 do begin Image.Bitmap[x,y]:=JeArray[x,y] end; end;
Zoiets dan he.
Je moet toch wat? En als je je als programmeur verveelt, dan verzin je gewoon wat geks.Op woensdag 18 juli 2001 09:13 schreef yodax het volgende:
Waarom hebben ze dat zo ontworpen? (dat hij van onder naar boven word gelezen?)
Siditamentis astuentis pactum.
Ik weet niet of dat wel zo traag is. Een vriend van me tekende op zo'n soort manier 3d-draadmodellen met 100FPS in delphi. Hij had wel allerlei optimalisaties met double-buffering etc. aangezet.Op woensdag 18 juli 2001 09:20 schreef cartman3380 het volgende:
Dat is Traaaaaaaaaaaaaaaag.. je eerste idee is beter..
Siditamentis astuentis pactum.
Verwijderd
mmm die array is dat een integer ?
die kun je met een copy() gewoon in een ander stuk geheugen copien..
maar waarom point je niet gewoon een TImage naar dat stuk geheugen? een array staat altijd achter elkaar in het geheugen.
dat pallete kun je er dan later aan toe-wijzen met een api call.
die kun je met een copy() gewoon in een ander stuk geheugen copien..
maar waarom point je niet gewoon een TImage naar dat stuk geheugen? een array staat altijd achter elkaar in het geheugen.
dat pallete kun je er dan later aan toe-wijzen met een api call.
Hoe je het pallet moet opslaan staat wel in de delphi help. Als je zoekt op TPalette vind je het wel. (bij Find, niet bij Index)
Een rappe manier om die array in de bitmap te krijgen is mbv ScanLine pointers. Zoek daar maar eens om. Daarmee kun je heel wat fps'jes krijgen (maar ik geloof niet dat je fps'jes nodig hebt bij je proggel.. whatever)
Een rappe manier om die array in de bitmap te krijgen is mbv ScanLine pointers. Zoek daar maar eens om. Daarmee kun je heel wat fps'jes krijgen (maar ik geloof niet dat je fps'jes nodig hebt bij je proggel.. whatever)
Omdat er meestal met een while-loop wordt gewerkt, dat is veelal sneller dan een andere soort loop. Bijvoorbeeld in C:yodax schreef op woensdag 18 juli 2001 @ 09:13:
Ik kan je hier niet mee helpen, maar ik heb wel een vraag. Waarom hebben ze dat zo ontworpen? (dat hij van onder naar boven word gelezen?)
int Y = 199;
while( Y-- ) {
/* scanline[Y] */
}
De loop stopt bij 0 omdat 0 ook staat voor false, is het getal hoger dan 0 dan zou je dit kunnen als zien als while( TRUE ) ( Y > 0 ) en bij 0 while( FALSE ) ( Y == 0 ). Omdat een while loop dat deze alleen start als de conditie tussen haakjes WAAR is. Dus zal de loop automatisch stoppen als deze niet waar is. Je ziet dat een hele korte notatie is een dus een efficiënte manier van programmeren, levert korte machine code op. Daarom dus achterstevoren. Het wordt achterstevoren weggeschreven waarna het achterstevoren weer wordt ingelezen en dan staat het dus weer goed
Jij gaat voor de GoT-award hardste kick van de eeuw?
All my posts are provided as-is. They come with NO WARRANTY at all.
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Pagina: 1
Dit topic is gesloten.
![]()