Converting an image file into DATA

Blitz3D Forums/Blitz3D Beginners Area/Converting an image file into DATA

DNielsen(Posted 2004) [#1]
@all,
Say I have an image .PNG or JPG. I do not want to use LoadImage() to get the file. I want the actual graphics integrated into my code using DATA statements. DisplayImage() would then point to the label of the DATA statements, are there any examples of this?


WolRon(Posted 2004) [#2]
Function CreateDATAImage()
	;generate image : image.bmp
	Restore IMAGE_DATAS_image_bmp
	Read imgW%
	Read imgH%
	img=CreateImage(imgW,imgH)
	SetBuffer ImageBuffer(img)
	LockBuffer ImageBuffer(img)
	For xiter=0 To imgW-1
		For yiter=0 To imgH-1
			Read rgb%
			WritePixelFast xiter,yiter,rgb%
		Next
	Next
	UnlockBuffer ImageBuffer(img)
End Function

;image.bmp (40x10)
.IMAGE_DATAS_image_bmp
Data 40
Data 10
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF, $0800FF
Data $0800FF, $0800FF, $0800FF, $0800FF, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00, $00FF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00
Data $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000
Data $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000, $FF0000



Bremer(Posted 2004) [#3]
Didn't you buy VisualBlitz IDE? Its built into that as far as I know, it will allow you to pick an image and it will make the code for you. (if my memory serves me well, that is)


DNielsen(Posted 2004) [#4]
@Zawran,
Yes, I just got VisualBlitz, but have not tried any features at all - using default values and haven't done any experimenting yet. But now I will, thanks for that heads-up!


Andy_A(Posted 2004) [#5]
Code archives has functions that converts any image to RLE (Run Length Encoded) data statements and functions to retreive the encoded image (data statements) to an image buffer. Main advantage of this type of encoding is that you will generate significantly smaller data statemments for simple images with few colors. Loses that advantage for complex images with large color palette.

(function to take snapshot of image and function to store in memory)
http://www.blitzbasic.com/codearcs/codearcs.php?code=973

(function to store in data statements and function to restore data statement to an image buffer)
http://www.blitzbasic.com/codearcs/codearcs.php?code=974

would that work for you?


DNielsen(Posted 2004) [#6]
@Andy_A
Great thread links! Thanks a million!