DrawingBuffer() speichern und wieder auslesen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

DrawingBuffer() speichern und wieder auslesen

Beitrag von Lambda »

Speichern

Code: Alles auswählen

    StartDrawing(ImageOutput(\img))
      DrawingMode(#PB_2DDrawing_AlphaBlend)
      
      mem=AllocateMemory(OutputWidth()*OutputHeight()*4)
      CopyMemory(DrawingBuffer(), mem, OutputWidth()*OutputHeight()*4)
      AddPackMemory(mem, MemorySize(mem))
    StopDrawing()
Öffnen

Code: Alles auswählen

            file=NextPackFile()
            mem = AllocateMemory(PackFileSize())
            CopyMemory(file, mem, PackFileSize())
            
            StartDrawing(ImageOutput(layer()\element()\img))
              FillMemory(DrawingBuffer(), PackFileSize(), mem)
            StopDrawing()
Sollte das nicht gehn? Ich bekomm am End ein schwarzes halbtransparentes bild.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: DrawingBuffer() speichern und wieder auslesen

Beitrag von NicTheQuick »

Du hast in deinem zweiten Code 'FillMemory()' statt 'CopyMemory()' verwandt. Deswegen wird der gesamte Bildspeicher mit der Zeigeradresse 'mem' überschrieben statt mit deren Inhalt.
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Re: DrawingBuffer() speichern und wieder auslesen

Beitrag von Lambda »

pah :D dankesehr
Antworten