möchte einen Ausschnitt aus einem Bitmap, bekomme aber immer nur ein leeres (schwarzes) Bitmap zurück, was stimmt nicht ?
Grüße
Rudolf
Code: Alles auswählen
function cropimage(cBuffer,aFields,x)
******************************************************************
local oBmp,nBSizex := 0,nBSizeY := 0,oPS
if substr(cBuffer,1,2) = "BM"
cBuffer := substr(cBuffer,15)
endif
oPS := XbpPresSpace():New():Create()
oBmp := xbpBitmap():new():create(oPS)
oBmp:setbuffer(cBuffer)
nBSizex := oBmp:xSize
nBSizeY := oBmp:ySize
oBmp := GraSaveScreen( oPS, {100,100},{30,50})
oBmp:savefile("test.bmp")
return .t.
FUNCTION GraSaveScreen( oSourcePS, aPos, aSize )
******************************************************************
LOCAL oBitmap := XbpBitmap():new():create( oSourcePS )
LOCAL oTargetPS := XbpPresSpace():new():create()
LOCAL aSourceRect[4], aTargetRect
aSourceRect[1] := aSourceRect[3] := aPos[1]
aSourceRect[2] := aSourceRect[4] := aPos[2]
aSourceRect[3] += aSize[1]
aSourceRect[4] += aSize[2]
aTargetRect := {0, 0, aSize[1], aSize[2]}
oBitmap:presSpace( oTargetPS )
oBitmap:make( aSize[1], aSize[2] )
GraBitBlt( oTargetPS, oSourcePS, aTargetRect, aSourceRect )
RETURN oBitmap