Convert bitmaps to (and load form) DATA syntax

Game development specific discussions.
Post Reply
badidea
Posts: 2591
Joined: May 24, 2007 22:10
Location: The Netherlands

Convert bitmaps to (and load form) DATA syntax

Post by badidea »

I made a tool convert a (game sprite) bitmap to freebasic DATA format. This way the image can be included in code.
Can be convenient if you can only post code, no web host to put a project zip-file or bitmap.
It is meant for small images with a limited amount of unique colors.

For the first run of the code, this bitmap is needed:
Imagehttps://nr100.home.xs4all.nl/badidea/un ... st_aid.bmp

After the first run, the bitmap can be deleted.
Change #Define FIRST_RUN to comment (section main program).

Code: Select all

'============================= list stuff ======================================

'Modified version of DynamicUserStackTypeCreateMacro.bi
'https://freebasic.net/forum/viewtopic.php?f=9&t=27026

#macro listTypeCreate(list_type, data_type)

	type list_type
		public:
		declare property push(byval value as data_type)
		declare property pop() as data_type
		declare property size() as integer 'stack size
		declare property find(byval value as data_type) as integer
		declare property get(index as integer) as data_type
		declare destructor()
		private:
		dim as data_type list(any) 'stack
		dim as integer current = 0
	end type

	'increase list size + add value
	property list_type.push(byval value as data_type)
		redim preserve list(ubound(list) + 1)
		list(ubound(list)) = value
	end property

	property list_type.pop() as data_type
		dim as data_type value
		select case ubound(list)
		case is > 0
			'get value + decrease list size
			value = list(ubound(list))
			redim preserve list(ubound(list) - 1)
		case is = 0
			'get value + empty list
			value = list(ubound(list))
			erase list
		case else
			'keep uninitialised value
		end select
		return value
	end property

	property list_type.size() as integer
		return ubound(list) + 1
	end property

	'find first match
	property list_type.find(byval value as data_type) as integer
		for i as integer = lbound(list) to ubound(list)
			if list(i) = value then return i 
		next
		return -1
	end property

	property list_type.get(index as integer) as data_type
		dim as data_type value
		if index >= lbound(list) and index <= ubound(list) then
			value = list(index)
		end if
		return value 
	end property

	destructor list_type
		erase list
	end destructor

#endmacro

'============================= sprite stuff ====================================

#include "file.bi"
#include "string.bi"

listTypeCreate(listTypeUlong, ulong) 'macro thing

type int2d
	as integer x, y
end type

type bitmap_header field = 1
	bfType          as ushort
	bfsize          as ulong
	bfReserved1     as ushort
	bfReserved2     as ushort
	bfOffBits       as ulong
	biSize          as ulong
	biWidth         as ulong
	biHeight        as ulong
	biPlanes        as ushort
	biBitCount      as ushort
	biCompression   as ulong
	biSizeImage     as ulong
	biXPelsPerMeter as ulong
	biYPelsPerMeter as ulong
	biClrUsed       as ulong
	biClrImportant  as ulong
end type

const as ulong C_MANGENTA = &h00FF00FF

const as integer SPRITE_DRAW_NO_CENTER = 0
const as integer SPRITE_DRAW_CENTER = 1

const as integer SPRITE_DRAW_PSET = 0
const as integer SPRITE_DRAW_TRANS = 1
const as integer SPRITE_DRAW_ALPHA = 2

type sprite_type
	public:
	dim as any ptr pImage
	dim as int2d size, half 
	dim as integer center, method, alphaval
	declare sub create(sizeInit as int2d, colorInit as ulong)
	declare function createFromBmp(fileName as string) as integer
	declare sub destroy()
	declare sub drawxy(x as integer, y as integer)
	declare sub setDrawProp(centerInit as integer, methodInit as integer, alphavalInit as integer)
	declare sub saveToFbDataFormat(fileName as string)
	declare sub createFromFbDataFormat()
	declare destructor()
end type

declare sub sprite_rotate(srcImg as any ptr, dstImg as any ptr, rotation as single, defaultColour as ulong)

sub sprite_type.create(sizeInit as int2d, colorInit as ulong)
	pImage = imagecreate(sizeInit.x, sizeInit.y, colorInit)
	size = sizeInit
	half.x = size.x \ 2
	half.y = size.y \ 2
	center = 0
	method = 0
end sub

function sprite_type.createFromBmp(fileName as string) as integer
	dim as bitmap_header bmp_header
	dim as int2d bmpSize
	if fileexists(filename) then
		open fileName for binary as #1
			get #1, , bmp_header
		close #1
		bmpSize.x = bmp_header.biWidth
		bmpSize.y = bmp_header.biHeight
		create(bmpSize, &hff000000) '<---!
		bload fileName, pImage
		print "Bitmap loaded: " & filename
	else
		print "File not found: " & filename
		sleep 1000: return -1
	end if
	return 0
end function

sub sprite_type.destroy()
	if (pImage <> 0) then
		imagedestroy(pImage)
		pImage = 0
	end if
end sub

destructor sprite_type()
	destroy
end destructor

sub sprite_type.drawxy(x as integer, y as integer)
	if (center) then
		x -= half.x
		y -= half.y
	end if
	select case method
		case 1 : put (x , y), pImage, trans
		case 2 : put (x , y), pImage, alpha, alphaval
		case else : put (x , y), pImage, pset
	end select
end sub

sub sprite_type.setDrawProp(centerInit as integer, methodInit as integer, alphavalInit as integer)
  center = centerInit
  method = methodInit
  alphaval = alphavalInit
end sub

sub sprite_type.saveToFbDataFormat(fileName as string)
	dim as integer x, y, wImage, hImage, pitchImage
	dim as ulong c
	dim as ulong ptr pPixels
	imageinfo pImage, wImage, hImage, , pitchImage, pPixels
	pitchImage shr= 2
	'index the unique colors
	dim as listTypeUlong list
	dim as integer index, lastIndex, colorIndex(wImage-1, hImage-1)
	for y = 0 to hImage-1
		for x = 0 to wImage-1
			c = pPixels[y * pitchImage + x]
			index = list.find(c)
			if index = -1 then 'not in list
				index = list.size()
				list.push(c) 'add to list
			end if
			colorIndex(x, y) = index
		next
	next
	'save to file
	dim as string sepStr
	var fileNum = freefile() 
	open fileName for output as fileNum
		'write number of unique colors
		print #fileNum, "data " & str(wImage) & ", " & str(hImage) & ", " &  str(list.size)
		'write unique color array
		print #fileNum, "data";
		lastIndex = list.size() - 1
		for i as integer = 0 to lastIndex
			if i = lastIndex then sepStr = "" else sepStr = ","
			print #fileNum, " &h" & hex(list.get(i)) & sepStr;
		next
		print #fileNum, "" 'new line
		'write color index map
		for y = 0 to hImage-1
			print #fileNum, "data";
			for x = 0 to wImage-1
				if x = wImage - 1 then sepStr = "" else sepStr = ","
				print #fileNum, " " & format(colorIndex(x, y), "00")  & sepStr;
			next
			print #fileNum, "" 'new line
		next
	close fileNum
	list.destructor() 'clear list
end sub

sub sprite_type.createFromFbDataFormat()
	dim as integer x, y, wImage, hImage, pitchImage
	dim as ulong c
	dim as ulong ptr pPixels
	'index the unique colors
	dim as listTypeUlong list
	dim as integer index
	dim as integer wData, hData, numColor
	'read image dimensions and create empty sprite
	read wData, hData, numColor
	create(type(wData, hData), C_MANGENTA)
	imageinfo pImage, wImage, hImage, , pitchImage, pPixels
	pitchImage shr= 2
	for i as integer = 0 to numColor-1
		read c
		list.push(c)
	next
	'read color index and get indexed color from list
	for y = 0 to hImage-1
		for x = 0 to wImage-1
			read index
			pPixels[y * pitchImage + x] = list.get(index)
		next
	next
	list.destructor() 'clear list
end sub

'============================= main program ====================================

'1st run: Load from bitmap file, save data file
'2nd run: Change to comment to load from data file
#Define FIRST_RUN

screenres 800, 600, 32

const as integer NUM_SPR_ROT = 360 \ 15
dim as sprite_type medicSpr

#ifdef FIRST_RUN
	if medicSpr.createFromBmp("unimog_first_aid.bmp") < 0 then goto endNow
#else
	#include "unimog_first_aid.data"
	medicSpr.createFromFbDataFormat()
	print "Image loaded from data file"
#endif

'draw image
medicSpr.setDrawProp(SPRITE_DRAW_CENTER, SPRITE_DRAW_TRANS, 0)
medicSpr.drawxy(800 \ 2, 600 \ 2)

#ifdef FIRST_RUN
	medicSpr.saveToFbDataFormat("unimog_first_aid.data")
#endif

endNow:
print "End, press any key"
while inkey = "": wend
After the first run, the file unimog_first_aid.data should exists, with the contents:

Code: Select all

data 48, 48, 16
data &hFFFF00FF, &hFFEDECD4, &hFFFFD800, &hFFFFEB00, &hFFFFB27F, &hFF808080, &hFF404040, &hFF303030, &hFF000000, &hFFD02F2F, &hFF0026FF, &hFF0094FF, &hFF7FC9FF, &hFFA0A0A0, &hFFA92020, &hFFFF0000
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 01, 02, 03, 02, 01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 01, 02, 03, 02, 01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 04, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 04, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 05, 01, 04, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 04, 01, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 05, 01, 04, 04, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 04, 04, 01, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 05, 01, 04, 04, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 06, 04, 04, 01, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 05, 05, 01, 07, 04, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 04, 07, 01, 05, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 05, 05, 01, 07, 04, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 04, 07, 01, 05, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 05, 05, 01, 07, 04, 01, 01, 01, 01, 01, 01, 01, 09, 09, 01, 01, 01, 01, 01, 01, 01, 04, 07, 01, 05, 05, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 05, 05, 01, 07, 04, 01, 10, 10, 01, 01, 01, 01, 09, 09, 01, 01, 01, 01, 10, 10, 01, 04, 07, 01, 05, 05, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 05, 05, 01, 07, 04, 10, 11, 11, 10, 01, 09, 09, 09, 09, 09, 09, 01, 10, 11, 11, 10, 04, 07, 01, 05, 05, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 05, 05, 01, 07, 04, 10, 12, 12, 10, 01, 09, 09, 09, 09, 09, 09, 01, 10, 12, 12, 10, 04, 07, 01, 05, 05, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 05, 05, 01, 04, 04, 01, 10, 10, 01, 01, 01, 01, 09, 09, 01, 01, 01, 01, 10, 10, 01, 04, 04, 01, 05, 05, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 05, 05, 01, 04, 04, 01, 01, 01, 01, 01, 01, 01, 09, 09, 01, 01, 01, 01, 01, 01, 01, 04, 04, 01, 05, 05, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 05, 05, 01, 04, 04, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 04, 04, 01, 05, 05, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 05, 05, 01, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 04, 01, 05, 05, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 08, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 13, 13, 07, 07, 07, 07, 08, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 08, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 13, 13, 07, 07, 07, 07, 08, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 07, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 07, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 07, 05, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 05, 07, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 07, 05, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 05, 07, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 07, 05, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 05, 07, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 07, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 05, 07, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 06, 06, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 06, 06, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 06, 06, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 06, 06, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 09, 09, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 13, 13, 01, 01, 01, 09, 09, 09, 09, 09, 09, 09, 14, 14, 09, 09, 09, 09, 09, 09, 09, 01, 01, 01, 13, 13, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 13, 13, 01, 01, 01, 09, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 09, 01, 01, 01, 13, 13, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 06, 06, 01, 01, 01, 09, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 09, 01, 01, 01, 06, 06, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 06, 06, 01, 01, 01, 09, 09, 09, 09, 09, 09, 09, 14, 14, 09, 09, 09, 09, 09, 09, 09, 01, 01, 01, 06, 06, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 07, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 07, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 14, 14, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 09, 09, 09, 09, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 13, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 06, 06, 13, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 13, 06, 06, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 06, 06, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 06, 06, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 15, 15, 15, 00, 00, 00, 00, 00, 00, 06, 06, 06, 06, 00, 00, 00, 00, 00, 00, 15, 15, 15, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
data 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
BasicCoder2
Posts: 3906
Joined: Jan 01, 2009 7:03
Location: Australia

Re: Convert bitmaps to (and load form) DATA syntax

Post by BasicCoder2 »

badidea
Posts: 2591
Joined: May 24, 2007 22:10
Location: The Netherlands

Re: Convert bitmaps to (and load form) DATA syntax

Post by badidea »

Looks pretty much the same. I'll check in detail tomorrow.
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: Convert bitmaps to (and load form) DATA syntax

Post by leopardpm »

badidea wrote:Looks pretty much the same. I'll check in detail tomorrow.
we pretty much covered that in infinite detail....also make it able to get bigger images through the forum with copy/paste of ascii text (or was it a 'fuller' character set? dont rememnber now...)... would be so nice if we could upload images to forum....
Post Reply