EddiTheHead
Messages postés58Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 2 juin 2006
-
9 mars 2005 à 20:47
EddiTheHead
Messages postés58Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 2 juin 2006
-
11 mars 2005 à 19:56
Bonjour,
Est-il possible d'avoir un accès directe à la mémoire d'un Tbitmap, comme on pouvait le faire en turbo pascal :
mem[adressesegment:adresse offset]
où mem[$A000:$0000] donnait accès à la mémoire de la carte vidéo.
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 11 mars 2005 à 15:58
à la place de mem et memw , en delphi 32, on utiliseras un pointeur, pour lire ecrire une astuce consiste a utiliser TmemoryStream:
var Ms : TmemoryStream;
Buff : Pointer;
begin
Ms:=TmemoryStream.Create;
Ms.Memory:=@LObjectQueTuVeux; // Ms.Memory:=Bmp.Scanline[Bmp.Height] (Pour un Bitmap)
Getmem(Buff,1024); // Reserver 1024 octets pour le buffer
Ms.Read(Buff,1024); // Lire 1024 Octets depuis l'object vers le buffer
Ms.Write(Buff,1024); // Ecrire dans l'object
FreeMem(Buff); // Liberer le buffer
Ms.Free; // liberer le memorystream
end;
EddiTheHead
Messages postés58Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 2 juin 2006 10 mars 2005 à 19:54
Bonjour,
Merci pour l'info, je connaissais l'existence de scanline via ce forum mais je ne l'ai pas encore testé. Vu qu'il utilise un pointer, je suppose que son exécution est rapide.
Mais j'ai mis tbitmap comme exemple, je pensais à un accès en général, pour une image mais aussi un wave par exemple. Juste pour ne pas toujours se reposer sur delphi.