bei folgendem Code bricht die Funktion EncodeImage bei ca. 2200 und 2300 ab, d.h. EncodeImage liefert Null zurück. Kann mir hier jemand weiterhelfen?
Vielen Dank im voraus!
Stevie
PB 5.51 (32 Bit !!) (Bei 64bit scheint es zu laufen)
Code: Alles auswählen
EnableExplicit
Structure PictureBuffer
*ptr
EndStructure
UsePNGImageDecoder()
UsePNGImageEncoder()
Define hDcDesktop.i = GetDC_(GetDesktopWindow_())
Define count.i = 0
Define pic_counter.i = 1
Define stored_pictures.i = 0
Define count.i = 0
Define dest_dx.i = 640
Define dest_dy.i = 400
Define image.i = CreateImage(#PB_Any, 640, 400)
Define min_x.i = 0
Define min_y.i = 0
Define w.i = 1920
Define h.i = 1200
Define hDC.i
Global NewList PicBuffer.PictureBuffer()
While pic_counter < 3000 ; <--- Den Wert variieren
AddElement(PicBuffer())
hDC = StartDrawing(ImageOutput(image))
StretchBlt_(hDC, 0, 0, dest_dx, dest_dy, hDcDesktop, min_x, min_y, w, h, #SRCCOPY)
StopDrawing()
PicBuffer()\ptr = EncodeImage(image,#PB_ImagePlugin_PNG)
If PicBuffer()\ptr = 0
MessageRequester("Abbruch","PictureBuffer()\ptr = 0. Abbruch bei " + Str(pic_counter) + "Bildern")
End
EndIf
stored_pictures = pic_counter
pic_counter+1
count = 0
Debug pic_counter
Wend
UseZipPacker()
ReleaseDC_(GetDesktopWindow_(),hDcDesktop)
FreeImage(image)
pic_counter = 1
If CreatePack(0, "c:\temp\files.zip")
ForEach PicBuffer()
AddPackMemory(0, PicBuffer()\ptr, MemorySize(PicBuffer()\ptr), "pic"+ "__"+Str(pic_counter)+".png")
pic_counter+1
Next
ClosePack(0)
EndIf
ForEach PicBuffer()
FreeMemory(PicBuffer()\ptr)
Next
ClearList(PicBuffer())