Home
Products
Community
Manuals
Contact
Login or Signup

Blitz3D Docs -> CreateImage

CreateImage (width,height[,frames])

Parameters:

width=width of the new image (or its frames)
height=height of the new image
frames= optional number of frames (assumed to be a single frame)

Description:

Sometimes you want to create a completely new graphic on the fly (using other images, drawing commands, etc.) instead of loading one. This command will let you create a new image with a single frame or multiple frames for animation. You specify the width, height, and optional number of frames. The example should be pretty self-explainatory.

See also: FreeImage, LoadImage, BufferDirty, GraphicsLost.

Example:

; CreateImage/TileImage/ImageBuffer example

; Again, we'll use globals even tho we don't need them here
; One variable for the graphic we'll create, one for a timer
Global gfxStarfield, tmrScreen

; Declare graphic mode
Graphics 640,480,16

; Create a blank image that is 32 pixels wide and 32 high with 10 frames of  32x32
gfxStarfield=CreateImage(32,32,10)

; loop through each frame of the graphic we just made
For t = 0 To 9
; Set the drawing buffer to the graphic frame so we can write on it
SetBuffer ImageBuffer(gfxStarfield,t)
; put 50 stars in the frame at random locations
For y = 1 To 50
Plot Rnd(32),Rnd(32)
Next
Next

; Double buffer mode for smooth screen drawing
SetBuffer BackBuffer()

; Loop until ESC is pressed
While Not KeyHit(1)

; Only update the screen every 300 milliseconds. Change 300 for faster or
; slower screen updates
If MilliSecs() > tmrScreen+300 Then 
Cls ; clear the screen

; Tile the screen with a random frame from our new graphic starting at
; x=0 and y=0 location.
TileImage gfxStarfield,0,0,Rnd(9)
Flip ; Flip the screen into view
tmrScreen=MilliSecs() ; reset the time
End If
Wend

Comments

Zethrax(Posted 6 months ago)
Something to bear in mind when creating an image that you wish to copy to a 3D texture is that imagebuffers and the graphics buffers used for the front and back buffers don't have an alpha channel. Texture buffers also don't have an alpha channel unless the texture was created/loaded with the alpha flag set.

So basically, if you need to manipulate the alpha channel data (the most significant byte in the pixel color data) then you can only do it in the texture buffer of an alpha enabled texture.


Blitz3D Manual Forum

BlitzPlus Equivalent Command