Less spaces in command history.
smaller save file size.
This commit is contained in:
parent
c302cb6139
commit
4bae8cde8f
2 changed files with 40 additions and 36 deletions
|
|
@ -20,7 +20,7 @@ Sub SaveBinaryPPM (imageHandle As Long, fileName As String)
|
||||||
length = inPosition + w * h * 4
|
length = inPosition + w * h * 4
|
||||||
head = "P6" + Chr$(10)
|
head = "P6" + Chr$(10)
|
||||||
head = head + "# Created with QB64" + Chr$(10)
|
head = head + "# Created with QB64" + Chr$(10)
|
||||||
head = head + LTrim$(Str$(w) + Str$(h)) + Chr$(10)
|
head = head + LTrim$(str$(w) + tst(h)) + Chr$(10)
|
||||||
head = head + "255" + Chr$(10)
|
head = head + "255" + Chr$(10)
|
||||||
filebuffer = _MemNew(w * h * 3)
|
filebuffer = _MemNew(w * h * 3)
|
||||||
outPosition = filebuffer.OFFSET
|
outPosition = filebuffer.OFFSET
|
||||||
|
|
@ -56,7 +56,7 @@ Sub save24bitBmp (imageHandle As Long, fileName As String)
|
||||||
_Source imageHandle
|
_Source imageHandle
|
||||||
|
|
||||||
header = "BM" + MKL$(_Width * _Height * 3 + 54) +_
|
header = "BM" + MKL$(_Width * _Height * 3 + 54) +_
|
||||||
String$(4, 0) + MKL$(54) + MKL$(40) +_
|
String$(4, 0) + MKL$(54) + MKL$(40) +_
|
||||||
MKL$(_Width) + MKL$(_Height) +_
|
MKL$(_Width) + MKL$(_Height) +_
|
||||||
MKI$(1) + MKI$(24) + MKL$(0) + MKL$(0) +_
|
MKI$(1) + MKI$(24) + MKL$(0) + MKL$(0) +_
|
||||||
MKL$(11811) + MKL$(11811) + MKL$(0) + MKL$(0)
|
MKL$(11811) + MKL$(11811) + MKL$(0) + MKL$(0)
|
||||||
|
|
@ -95,7 +95,7 @@ Sub save8bitPNG (imagehandle As Long, filename As String)
|
||||||
IHDR = "IHDR" + MKL$(FlipBytes(_Width(imagehandle))) + MKL$(FlipBytes(_Height(imagehandle))) + Chr$(8) + Chr$(3) + String$(3, 0)
|
IHDR = "IHDR" + MKL$(FlipBytes(_Width(imagehandle))) + MKL$(FlipBytes(_Height(imagehandle))) + Chr$(8) + Chr$(3) + String$(3, 0)
|
||||||
IHDR = MKL$(FlipBytes(&H0D)) + IHDR + MKL$(FlipBytes(crc32(IHDR)))
|
IHDR = MKL$(FlipBytes(&H0D)) + IHDR + MKL$(FlipBytes(crc32(IHDR)))
|
||||||
IEND = MKL$(0) + "IEND" + MKL$(FlipBytes(&HAE426082))
|
IEND = MKL$(0) + "IEND" + MKL$(FlipBytes(&HAE426082))
|
||||||
PLTE = "PLTE"
|
PLTE = "PLTE"
|
||||||
for c = 0 to 255
|
for c = 0 to 255
|
||||||
PLTE = PLTE + chr$(_Red32(_PaletteColor(c)))
|
PLTE = PLTE + chr$(_Red32(_PaletteColor(c)))
|
||||||
PLTE = PLTE + chr$(_Green32(_PaletteColor(c)))
|
PLTE = PLTE + chr$(_Green32(_PaletteColor(c)))
|
||||||
|
|
@ -200,4 +200,4 @@ Function crc32~& (IN$)
|
||||||
Next J
|
Next J
|
||||||
Next I
|
Next I
|
||||||
crc32~& = Not CRC
|
crc32~& = Not CRC
|
||||||
End Function
|
End Function
|
||||||
|
|
|
||||||
68
pixler.bas
68
pixler.bas
|
|
@ -43,7 +43,7 @@ layers(2).ihandle=_newimage(320,320,32)
|
||||||
layers(3).ihandle=_newimage(320,320,32)
|
layers(3).ihandle=_newimage(320,320,32)
|
||||||
|
|
||||||
_dest layers(0).ihandle
|
_dest layers(0).ihandle
|
||||||
addcommand "canvas ("+str$(_width)+","+str$(_height)+")"
|
addcommand "canvas ("+tst(_width)+","+tst(_height)+")"
|
||||||
for y = 0 to _height - 16 step 16
|
for y = 0 to _height - 16 step 16
|
||||||
for x = 0 to _width - 16 step 16
|
for x = 0 to _width - 16 step 16
|
||||||
if ((x + y) / 16 AND 1) = 0 then
|
if ((x + y) / 16 AND 1) = 0 then
|
||||||
|
|
@ -90,7 +90,7 @@ canvas
|
||||||
if showcolorpicker then colorpicker
|
if showcolorpicker then colorpicker
|
||||||
if showcommands then commandlist
|
if showcommands then commandlist
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'Mouse Handling
|
'Mouse Handling
|
||||||
while _mouseinput:mw=mw+_mousewheel:wend
|
while _mouseinput:mw=mw+_mousewheel:wend
|
||||||
|
|
@ -137,10 +137,10 @@ canvas
|
||||||
select case keyin
|
select case keyin
|
||||||
case "+"
|
case "+"
|
||||||
state.brushsize=state.brushsize+1
|
state.brushsize=state.brushsize+1
|
||||||
addcommand "brushsize ("+str$(state.brushsize)+")"
|
addcommand "brushsize ("+tst(state.brushsize)+")"
|
||||||
case "-"
|
case "-"
|
||||||
if state.brushsize>1 then state.brushsize=state.brushsize-1
|
if state.brushsize>1 then state.brushsize=state.brushsize-1
|
||||||
addcommand "brushsize ("+str$(state.brushsize)+")"
|
addcommand "brushsize ("+tst(state.brushsize)+")"
|
||||||
case chr$(19) ' ctrl+s
|
case chr$(19) ' ctrl+s
|
||||||
'TODO: save logic
|
'TODO: save logic
|
||||||
case chr$(27)' esc
|
case chr$(27)' esc
|
||||||
|
|
@ -166,11 +166,11 @@ sub commandlist
|
||||||
dim i as long
|
dim i as long
|
||||||
dim listWidth as integer:listWidth = 150
|
dim listWidth as integer:listWidth = 150
|
||||||
dim x as integer:x=_width-listWidth
|
dim x as integer:x=_width-listWidth
|
||||||
|
|
||||||
' Draw background for the list
|
' Draw background for the list
|
||||||
line (x,0)-(_width-1,_height - 1),backgroundcolor1, bf
|
line (x,0)-(_width-1,_height - 1),backgroundcolor1, bf
|
||||||
line (x,0)-(x,_height-1),backgroundcolor2
|
line (x,0)-(x,_height-1),backgroundcolor2
|
||||||
|
|
||||||
_printmode _keepbackground
|
_printmode _keepbackground
|
||||||
dim y as integer
|
dim y as integer
|
||||||
for i = ubound(commands) - 1 to 0 step -1
|
for i = ubound(commands) - 1 to 0 step -1
|
||||||
|
|
@ -213,12 +213,6 @@ sub toolbox
|
||||||
end if
|
end if
|
||||||
end sub
|
end sub
|
||||||
|
|
||||||
sub palettemanager(col as _unsigned long)
|
|
||||||
line (0,0)-(_width-1,_height-1),col,bf
|
|
||||||
_display
|
|
||||||
sleep
|
|
||||||
end sub
|
|
||||||
|
|
||||||
sub colorpicker
|
sub colorpicker
|
||||||
dim img as long
|
dim img as long
|
||||||
img=_newimage(16,16,32)
|
img=_newimage(16,16,32)
|
||||||
|
|
@ -319,8 +313,8 @@ sub canvas
|
||||||
exit sub
|
exit sub
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
|
|
||||||
dim r as integer
|
dim r as integer
|
||||||
|
|
||||||
' 3. Calculate Canvas Coordinates
|
' 3. Calculate Canvas Coordinates
|
||||||
dim canX as long
|
dim canX as long
|
||||||
|
|
@ -343,10 +337,10 @@ sub canvas
|
||||||
_source layers(1).ihandle
|
_source layers(1).ihandle
|
||||||
if mouseclicked then
|
if mouseclicked then
|
||||||
floodfill canX,canY,state.fcolor
|
floodfill canX,canY,state.fcolor
|
||||||
addcommand "floodfill ("+str$(canX)+","+str$(canY)+","+hex$(state.fcolor)+")"
|
addcommand "floodfill ("+tst(canX)+","+tst(canY)+","+hex$(state.fcolor)+")"
|
||||||
else
|
else
|
||||||
floodfill canX,canY,state.bcolor
|
floodfill canX,canY,state.bcolor
|
||||||
addcommand "floodfill ("+str$(canX)+","+str$(canY)+","+hex$(state.bcolor)+")"
|
addcommand "floodfill ("+tst(canX)+","+tst(canY)+","+hex$(state.bcolor)+")"
|
||||||
end if
|
end if
|
||||||
_dest 0
|
_dest 0
|
||||||
_source 0
|
_source 0
|
||||||
|
|
@ -392,10 +386,10 @@ sub canvas
|
||||||
_dest layers(1).ihandle
|
_dest layers(1).ihandle
|
||||||
if canX=state.startX and canY=state.startY then
|
if canX=state.startX and canY=state.startY then
|
||||||
thickpixel canX,canY,drawCol
|
thickpixel canX,canY,drawCol
|
||||||
addcommand "pixel ("+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
addcommand "pixel ("+tst(canX)+","+tst(canY)+","+hex$(drawCol)+")"
|
||||||
else
|
else
|
||||||
thickline state.startX, state.startY, canX, canY, drawCol
|
thickline state.startX, state.startY, canX, canY, drawCol
|
||||||
addcommand "line ("+str$(state.startX)+","+str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
addcommand "line ("+tst(state.startX)+","+tst(state.startY)+","+tst(canX)+","+tst(canY)+","+hex$(drawCol)+")"
|
||||||
end if
|
end if
|
||||||
state.startX = canX: state.startY = canY
|
state.startX = canX: state.startY = canY
|
||||||
case 2 ' Straight Line
|
case 2 ' Straight Line
|
||||||
|
|
@ -436,21 +430,21 @@ sub canvas
|
||||||
redim finalP(pointCount * 2 - 1) as long
|
redim finalP(pointCount * 2 - 1) as long
|
||||||
for p = 0 to (pointCount * 2) - 1: finalP(p) = polypoints(p): next
|
for p = 0 to (pointCount * 2) - 1: finalP(p) = polypoints(p): next
|
||||||
dim tmpstr as string
|
dim tmpstr as string
|
||||||
if state.tool =8 then
|
if state.tool =8 then
|
||||||
filledPolygon finalP(), state.fcolor
|
filledPolygon finalP(), state.fcolor
|
||||||
tmpstr="fpolygon ("
|
tmpstr="fpolygon ("
|
||||||
for i=0 to ubound(finalP)-1
|
for i=0 to ubound(finalP)-1
|
||||||
tmpstr=tmpstr+str$(finalP(i))+","
|
tmpstr=tmpstr+tst(finalP(i))+","
|
||||||
next i
|
next i
|
||||||
tmpstr=tmpstr+str$(finalP(i))+","+hex$(state.fcolor)+")"
|
tmpstr=tmpstr+tst(finalP(i))+","+hex$(state.fcolor)+")"
|
||||||
addcommand tmpstr
|
addcommand tmpstr
|
||||||
else
|
else
|
||||||
Polygon finalP(), state.fcolor
|
Polygon finalP(), state.fcolor
|
||||||
tmpstr="polygon ("
|
tmpstr="polygon ("
|
||||||
for i=0 to ubound(finalP)-1
|
for i=0 to ubound(finalP)-1
|
||||||
tmpstr=tmpstr+str$(finalP(i))+","
|
tmpstr=tmpstr+tst(finalP(i))+","
|
||||||
next i
|
next i
|
||||||
tmpstr=tmpstr+str$(finalP(i))+","+hex$(state.fcolor)+")"
|
tmpstr=tmpstr+tst(finalP(i))+","+hex$(state.fcolor)+")"
|
||||||
addcommand tmpstr
|
addcommand tmpstr
|
||||||
end if
|
end if
|
||||||
else
|
else
|
||||||
|
|
@ -460,25 +454,25 @@ sub canvas
|
||||||
case 2 ' Line
|
case 2 ' Line
|
||||||
if canX=state.startX and canY=state.startY then
|
if canX=state.startX and canY=state.startY then
|
||||||
thickpixel canX,canY,drawCol
|
thickpixel canX,canY,drawCol
|
||||||
addcommand "pixel ("+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
addcommand "pixel ("+tst(canX)+","+tst(canY)+","+hex$(drawCol)+")"
|
||||||
else
|
else
|
||||||
thickline state.startX, state.startY, canX, canY, drawCol
|
thickline state.startX, state.startY, canX, canY, drawCol
|
||||||
addcommand "line ("+str$(state.startX)+","+str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
addcommand "line ("+tst(state.startX)+","+tst(state.startY)+","+tst(canX)+","+tst(canY)+","+hex$(drawCol)+")"
|
||||||
end if
|
end if
|
||||||
case 3 ' Circle
|
case 3 ' Circle
|
||||||
r = int(sqr((canX - state.startX)^2 + (canY - state.startY)^2))
|
r = int(sqr((canX - state.startX)^2 + (canY - state.startY)^2))
|
||||||
thickcircle state.startX, state.startY, r + 1, drawCol
|
thickcircle state.startX, state.startY, r + 1, drawCol
|
||||||
addcommand "circle ("+str$(state.startX)+","+str$(state.startY)+","+str$(int(r))+","+hex$(drawCol)+")"
|
addcommand "circle ("+tst(state.startX)+","+tst(state.startY)+","+tst(int(r))+","+hex$(drawCol)+")"
|
||||||
case 4
|
case 4
|
||||||
r = int(sqr((canX - state.startX)^2 + (canY - state.startY)^2))
|
r = int(sqr((canX - state.startX)^2 + (canY - state.startY)^2))
|
||||||
filledcircle state.startX, state.startY, r + 1, drawCol
|
filledcircle state.startX, state.startY, r + 1, drawCol
|
||||||
addcommand "fcircle ("+str$(state.startX)+","+str$(state.startY)+","+str$(int(r))+","+hex$(drawCol)+")"
|
addcommand "fcircle ("+tst(state.startX)+","+tst(state.startY)+","+tst(int(r))+","+hex$(drawCol)+")"
|
||||||
case 5 ' Box
|
case 5 ' Box
|
||||||
line (state.startX, state.startY)-(canX, canY), drawCol, b
|
line (state.startX, state.startY)-(canX, canY), drawCol, b
|
||||||
addcommand "box ("+str$(state.startX)+","+str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
addcommand "box ("+tst(state.startX)+","+tst(state.startY)+","+tst(canX)+","+tst(canY)+","+hex$(drawCol)+")"
|
||||||
case 6 ' Filled Box
|
case 6 ' Filled Box
|
||||||
line (state.startX, state.startY)-(canX, canY), drawCol, bf
|
line (state.startX, state.startY)-(canX, canY), drawCol, bf
|
||||||
addcommand "fbox ("+str$(state.startX)+","+str$(state.startY)+","+str$(canX)+","+str$(canY)+","+hex$(drawCol)+")"
|
addcommand "fbox ("+tst(state.startX)+","+tst(state.startY)+","+tst(canX)+","+tst(canY)+","+hex$(drawCol)+")"
|
||||||
end select
|
end select
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
@ -631,6 +625,11 @@ _display
|
||||||
loop
|
loop
|
||||||
end sub
|
end sub
|
||||||
|
|
||||||
|
sub palettemanager(col as _unsigned long)
|
||||||
|
line (0,0)-(_width-1,_height-1),col,bf
|
||||||
|
'TODO: build palette mamager ui
|
||||||
|
end sub
|
||||||
|
|
||||||
FUNCTION closestcolor~& (colour AS _UNSIGNED LONG, carr() AS _UNSIGNED LONG)
|
FUNCTION closestcolor~& (colour AS _UNSIGNED LONG, carr() AS _UNSIGNED LONG)
|
||||||
DIM r AS INTEGER
|
DIM r AS INTEGER
|
||||||
DIM g AS INTEGER
|
DIM g AS INTEGER
|
||||||
|
|
@ -655,3 +654,8 @@ FUNCTION closestcolor~& (colour AS _UNSIGNED LONG, carr() AS _UNSIGNED LONG)
|
||||||
NEXT i
|
NEXT i
|
||||||
closestcolor = carr(nearest)
|
closestcolor = carr(nearest)
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
|
' trimmed str$
|
||||||
|
function tst$(numb)
|
||||||
|
tst=_trim$(str$(numb))
|
||||||
|
end function
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue