How to Copy CanvasBuffer to an ImageBuffer???
BlitzPlus Forums/BlitzPlus Programming/How to Copy CanvasBuffer to an ImageBuffer???
| ||
I have this code and although the code compiles, it doesn't do what I want :) I was hoping image_copy=CopyImage(CanvasBuffer(image)) would work too but it doesn't Any ideas guys??? I'm a B+ newbie, but OK with B2D :) ;--- Load Image & Grab Properties--- image=LoadImage(file$) MaskImage(image,255,0,255) img_x#=ImageWidth(image) img_y#=ImageHeight(image) ;--- Rescale Canvas & Image --- FreeGadget canvas canvas=CreateCanvas(0,0,ImageWidth(image),ImageHeight(image),panel) scale#=(160/img_x#)*img_y# SetGadgetShape canvas,0,0,160,scale# SetSliderRange vslider,ClientHeight(panel),scale# ;--- Blit Results --- SetBuffer CanvasBuffer(canvas) DrawImage image,0,0 FlipCanvas (canvas) ;--- Copy Canvas to Array --- Dim pixel(160,scale#) LockBuffer CanvasBuffer(canvas) For x_=0 To 159 For y_=0 To (scale#-1) pixel(x,y)=ReadPixelFast(x,y) Next Next UnlockBuffer CanvasBuffer(canvas) ;--- Copy Array to Temp Image --- image_copy=CreateImage(160,scale#) LockBuffer image_copy For x_=0 To 159 For y_=0 To (scale#-1) WritePixelFast x,y,pixel(x,y) Next Next UnlockBuffer image_copy ;--- Debug Test Copy Results --- SetBuffer CanvasBuffer(canvas) Cls DrawImage image_copy,0,0 FlipCanvas (canvas) |
| ||
Local CanW% = GadgetWidth(Canvas), CanH% = GadgetHeight(Canvas) Buffer = CreateImage(CanW, CanH, 1, 1) CopyRect 0, 0, CanW, CanH, 0, 0, CanvasBuffer(Canvas), ImageBuffer(Buffer) |
| ||
Cheers dude but I fixed this earlier :) |