grabpixmap

BlitzMax Forums/BlitzMax Beginners Area/grabpixmap

I have been able to store multi-images in a single .png but I can't find a way to get a sub image out to draw.
grabpixmap seem to be the right command to select a sub image that I want to draw. Then I want to draw the sub image to a specific place. The followinf code get the muti-images loaded:

Local image:timage
Local x,y
Global pixmap:TPixmap
Graphics 800,600

image=LoadImage(LoadPixmapPNG("cimage.png"))

DrawImage image,0,0

Now what do I do to get and draw a sub image from this load to a specific location on the screen

PixmapWindow is probably what you need.

DrawImageRect?

thanks, I will look at it

I am trying get around not have an array for images

drawImageRect

draws the all the images in small rectangle not a single image subset

LoadAnimImage?

Thank FlameDuck. This code worked

load_image=LoadAnimImage:TImage( ("cimage.png"),71,96,0,52,flags=-1 )
DrawImage load_image,0,0
Flip
WaitKey
End

This should allow for an array based indexing of these images and screen placement

Also for annimation storage

Thank FlameDuck. This code worked

load_image=LoadAnimImage:TImage( ("cimage.png"),71,96,0,52,flags=-1 )
DrawImage load_image,0,0
Flip
WaitKey
End

This should allow for an array based indexing of these images and screen placement

Also for annimation storage

load_image=LoadAnimImage:TImage( ("cimage.png"),71,96,0,52,flags=-1 )

You can remove the highlighted bit in the above code. 'Flags' is the parameter name, -1 is its default value. So if anything it should read "....0,52,-1", but you can just omit the -1 completely. I'm surprised your code didn't throw a type conversion error.

I can only get 15 images from from the stored .png which has 56 image. I did this by a "for" loop that changed the cell first cell parameter from 0 to 14 anything higher caused an error. No error raised on the number of cells.

thank gfk for comment

That's what the 'frame' parameter of DrawImage() is for...
Strict

Graphics 800, 600, 0

Local image:TImage = LoadAnimImage("cimage.png", 71, 96, 0, 56)

For Local currentFrame=0 To 55
	Cls
	DrawText "Frame " + currentFrame, 12, 12 
	DrawImage image, 100, 100, currentFrame
	Flip
	
	Delay(1000)
Next

End


works great

thanks Ian