when i press key "S" my bitmap is not saved ?
any exaplanation?
Code: Select all
sub SaveSprites()
for i as integer = 0 to nFrames-1
bsave "C:\FBbitmaps\"+ "newBMP.bmp",sprite(i)
next i
end sub
why is that ?
thanks ..
Code: Select all
sub SaveSprites()
for i as integer = 0 to nFrames-1
bsave "C:\FBbitmaps\"+ "newBMP.bmp",sprite(i)
next i
end sub
Code: Select all
bsave "tSprite"+str(i)+".bmp",sprite(i)
Code: Select all
bsave "/home/badidea/tSprite"+str(i)+".bmp",sprite(i)
Code: Select all
sub SaveSprites()
for i as integer = 0 to nFrames-1
bsave "tSprite"+str(i)+".bmp",sprite(i)
next i
end sub
sub LoadSprites()
for i as integer = 0 to nFrames-1
bload "tSprite"+str(i)+".bmp",sprite(i)
next i
upDate(1)
end sub
Code: Select all
sub SaveSprites()
for i as integer = 0 to nFrames-1
bsave "C:\FBbitmaps\"+ "newBMP.bmp",sprite(i)
next i
end sub
Code: Select all
screenres 640,480,32
color rgb(0,0,0),rgb(255,255,255) 'white paper, black ink
cls 'implements color command
const nFrames = 1 'number of frames
const wSprite = 32 'width of sprite
const hSprite = 32 'height of sprite
const SIZE = 12 'size of grid pixel.
const POSX = 220 'top/left position of grid on screen
const POSY = 64
dim shared as integer mx,my,ox,oy,mb 'mouse variables
dim shared as uinteger selectedColor 'current color selected
dim shared as any ptr sprite(nFrames) 'current sprite image
dim shared as integer currentFrame 'current image being edited
selectedColor = rgb(0,0,0)
'mb=2
for i as integer = 0 to nFrames-1
sprite(i) = imageCreate(wSprite,hSprite,rgb(255,255,255)) 'frames
next i
'draw palette 1
dim shared as any ptr palette1
palette1 = imagecreate(512,16)
for i as integer = 0 to 31
line palette1,(i*16,0)-(i*16+15,15),rgb(int(rnd(1)*256),int(rnd(1)*256),int(rnd(1)*256)),bf
next i
'show palette
put (0,460),palette1,trans
sub upDate(fade as integer)
dim as uinteger r,g,b,p
'screenlock
'copy pixel values from sprite to grid display
line (POSX-2,POSY-2)-(POSX+SIZE*wSprite+2,POSY+SIZE*hSprite+2),rgb(10,10,10),b
for j as integer = 0 to hSprite-1
for i as integer = 0 to wSprite-1
p = point(i,j,sprite(currentFrame))
r = p shr 16 and 255
g = p shr 8 and 255
b = p and 255
line (i*SIZE+POSX+1,j*SIZE+POSY+1)-(i*SIZE+SIZE+POSX-1,j*SIZE+SIZE+POSY-1),rgb(r,g,b),bf
line (i*SIZE+POSX,j*SIZE+POSY)-(i*SIZE+SIZE+POSX,j*SIZE+SIZE+POSY),rgb(100,100,255),b
if currentFrame<>0 and fade = 1 then 'show previous drawing
if point(i,j,sprite(currentFrame))=rgb(255,255,255) then
p = point(i,j,sprite(currentFrame-1))
if p<>rgb(255,255,255) then
r = p shr 16 and 255
g = p shr 8 and 255
b = p and 255
r = r*4 and &HFFFFFF
g = g*4 and &HFFFFFF
b = b*4 and &HFFFFFF
line (i*SIZE+POSX+1,j*SIZE+POSY+1)-(i*SIZE+SIZE+POSX-1,j*SIZE+SIZE+POSY-1),rgb(127,127,127),bf
end if
end if
end if
next i
next j
locate 38,2
print "[.] move forward one frame"
locate 40,2
print "[,] move back one frame"
locate 42,2
print "[S] to save sprites"
locate 44,2
print "[L] to load sprites"
locate 46,2
print "[C] to clear sprites"
locate 48,2
print "[ESC] TO END PROGRAM"
'locate 50,2
'print "[A] TO ANIMATE"
'display sprite
line (4,4)-(37,37),rgb(10,10,10),b
line (2,2)-(39,39),rgb(10,10,10),b
put (5,5),sprite(currentFrame),pset
locate 10,3
print "FRAME =";currentFrame;" "
'screenunlock
end sub
sub SaveSprites()
for i as integer = 0 to nFrames-1
bsave "C:\FBbitmaps\"+ "newBMP.bmp",sprite(i)
next i
end sub
sub LoadSprites()
for i as integer = 0 to nFrames-1
bload "C:/FBbitmaps"+str(i)+".bmp",sprite(i)
next i
upDate(1)
end sub
sub animate(delay as double)
dim as double now1
currentFrame = 0
now1 = timer
update(0)
do
if timer > now1 + delay then
now1 = timer
update(0)
currentFrame = currentFrame + 1
if currentFrame >= nFrames-1 then
currentFrame = 0
end if
end if
sleep 2
loop until multikey(&H01)
end sub
'MAIN PROGRAM
upDate(1)
getmouse mx,my,,mb
ox = mx
oy = my
'if mb = 2 then
' selectedColor = point(mx,my)
'end if
dim as integer i,j
dim as string key
do
key = inkey
if ucase(key) = "S" then
SaveSprites()
end if
if ucase(key) = "L" then
LoadSprites()
end if
if ucase(key) = "C" then
for i as integer = 0 to nFrames-1
line sprite(i),(0,0)-(wSprite,hSprite),rgb(255,255,255),bf
next i
upDate(1)
end if
if ucase(key) = "A" then
animate(0.05)
end if
if key = "," then
currentFrame = currentFrame-1
if currentFrame < 0 then
currentFrame = nFrames-1
end if
upDate(1)
end if
if key = "." then
currentFrame = currentFrame+1
if currentFrame > (nFrames-1) then
currentFrame = 0
end if
upDate(1)
end if
getmouse mx,my,,mb
'select color right click -----------------------
if mb = 2 then
selectedColor = point(mx,my)
end if
'------------------------------------------------
'over drawing area?
if mx>POSX and mx<POSX+wSprite*SIZE+SIZE-1 and my>POSY and my<POSY+hSprite*SIZE+SIZE-1 then
if mb = 1 then
pset sprite(currentFrame),((mx-POSX)\SIZE,(my-POSY)\SIZE),selectedColor
update(1)
while mb=1
getmouse mx,my,,mb
if ox<>mx or oy<>my then
pset sprite(currentFrame),((mx-POSX)\SIZE,(my-POSY)\SIZE),selectedColor
upDate(1) 'copy sprite pixel values to grid, display result with fade
ox = mx
oy = my
end if
sleep 2
wend
end if
end if
sleep 2
loop until multikey(&H01)
Code: Select all
chdir exepath()
screenres 640,480,32
color rgb(0,0,0),rgb(255,255,255) 'white paper, black ink
cls 'implements color command
Const NULL As Any Ptr = 0
dim shared as string dirPath 'path to folder containing bitmap images
dirPath = curDir
dim shared as string images(0 to 100) 'list of bitmap images in folder
dim shared as integer MAX_IMAGES = 100
const wImage = 32 'width of Image
const hImage = 32 'height of Image
const SIZE = 12 'size of grid pixel.
const POSX = 220 'top/left position of grid on screen
const POSY = 8
dim shared as integer bmCount
dim shared as integer mx,my,ox,oy,mb 'mouse variables
dim shared as uinteger selectedColor 'current color selected
selectedColor = rgb(0,0,0)
'draw palette 1
dim shared as any ptr palette1
palette1 = imagecreate(153,96)
bload "palette1.bmp",palette1
'make Image image
dim shared as any ptr Image
Image = imagecreate(32,32,rgb(255,255,255))
sub makeImagesList()
bmCount = 0
dim as string file
CONST attrib_archive = 32
CHDIR dirPath 'Change this to the directory you want to browse
file = dir("*", attrib_archive)
' 'get first image
if mid(file,len(file)-3,4) = ".bmp" then
images(bmCount)=file
bmCount = bmCount + 1
end if
'get the rest of the images
do
file = dir("", attrib_archive)
if mid(file,len(file)-3,4) = ".bmp" then
images(bmCount)=file
if bmCount<MAX_IMAGES then
bmCount = bmCount + 1
end if
end if
loop while file <> ""
end sub
sub upDate()
dim as uinteger r,g,b,p
screenlock
cls
'copy pixel values from Image to grid display
line (POSX-2,POSY-2)-(POSX+SIZE*wImage+2,POSY+SIZE*hImage+2),rgb(10,10,10),b
for j as integer = 0 to hImage-1
for i as integer = 0 to wImage-1
p = point(i,j,Image)
r = p shr 16 and 255
g = p shr 8 and 255
b = p and 255
line (i*SIZE+POSX+1,j*SIZE+POSY+1)-(i*SIZE+SIZE+POSX-1,j*SIZE+SIZE+POSY-1),rgb(r,g,b),bf
line (i*SIZE+POSX,j*SIZE+POSY)-(i*SIZE+SIZE+POSX,j*SIZE+SIZE+POSY),rgb(100,100,255),b
next i
next j
locate 32,2
print "[S] to save image"
locate 34,2
print "[L] to load image"
locate 36,2
print "[C] to clear image"
locate 38,2
print "[ESC] TO END PROGRAM"
'display Image
line (4,4)-(37,37),rgb(10,10,10),b
line (2,2)-(39,39),rgb(10,10,10),b
put (5,5),Image,pset
put (8,360),palette1,trans
line (8,360)-(8+152,360+95),rgb(0,0,255),b
'draw select color
line (170,416)-(170+30,416+30),selectedColor,bf
line (170,416)-(170+30,416+30),rgb(0,0,0),b
screenunlock
end sub
sub SaveImage()
cls
locate 2,2
dim as string fileName
INPUT "ENTER Image FILE NAME:";fileName
if right(fileName,4)<>".bmp" then
fileName = fileName + ".bmp"
end if
bsave fileName,Image
end sub
sub LoadImage()
cls
dim as string fileName
makeImagesList()
'print list of images
locate 1,1
for i as integer = 0 to bmCount-1
print images(i)
next i
print
INPUT "ENTER Image FILE NAME:";fileName
if right(fileName,4)<>".bmp" then
fileName = fileName + ".bmp"
end if
bload fileName,Image
end sub
upDate()
getmouse mx,my,,mb
ox = mx
oy = my
dim as integer i,j
dim as string key
do
key = inkey
if ucase(key) = "S" then
SaveImage()
end if
if ucase(key) = "L" then
LoadImage()
end if
if ucase(key) = "C" then
line Image,(0,0)-(wImage,hImage),rgb(255,255,255),bf
upDate()
end if
getmouse mx,my,,mb
'over drawing area?
if mx>POSX and mx<POSX+wImage*SIZE+SIZE-1 and my>POSY and my<POSY+hImage*SIZE+SIZE-1 then
if mb = 1 then
pset Image,((mx-POSX)\SIZE,(my-POSY)\SIZE),selectedColor
ox = mx
oy = my
update()
while mb=1
getmouse mx,my,,mb
if ox<>mx or oy<>my then
line Image,((mx-POSX)\SIZE,(my-POSY)\SIZE)-((ox-POSX)\SIZE,(oy-POSY)\SIZE),selectedColor
upDate()
ox = mx
oy = my
end if
sleep 2
wend
end if
end if
'is mouse over palette?
if mx>8 and mx<152 and my>360 and my<360+95 then
if mb=1 then
selectedColor = point(mx,my)
end if
end if
update()
sleep 2
loop until multikey(&H01)