Code archives/File Utilities/Blitz Resource Compiler Example

This code has been declared by its author to be Public Domain code.

Download source code

Blitz Resource Compiler Example by superqix
(Posted 24 years ago)
Updated with a both a graphic and a sound file in a resource, and to BASE64
; ******************************************
; * Blltz Resource Compiler Example v0.3
; ******************************************
; * BASE64 encode a file into BB source to
; * add to a Blitz project for retrival
; * 
; * Perfect for including small graphics or
; * sounds in your Blitz EXE file
; ******************************************
; * Released under the LPGL 8/30/2002 by
; * Michael Wilson wilson(at)no2games.com
; ******************************************

Graphics 640,480

cursor = LoadImage(LoadResource("mouse.png"))
click = LoadSound(LoadResource("beep.wav"))
FreeResources()

MaskImage cursor,255,0,255
SetBuffer BackBuffer()

While Not KeyHit(1)
	Cls
	DrawImage cursor, MouseX(),MouseY()
	If MouseHit(1) Then PlaySound click
	Flip
Wend

; ******************************************
; * Code below this point is automatically
; * generated by the Blltz Resource Compiler
; ******************************************

Type TempResourceFile
  Field FileName$
End Type

Function FreeResources()
  For TempFiles.TempResourceFile = Each TempResourceFile 
  DeleteFile TempFiles\FileName$ 
  Delete TempFiles 
  Next 
End Function 

Function LoadResource$(Resource$)
  Select Upper$(Resource$)
    Case "BEEP.WAV" Restore beep_wav
    Case "MOUSE.PNG" Restore mouse_png
  End Select
  EncodeTable$ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz{}"
  TempFile$ = Str Int Rnd(11111,99999)
  TempFile$ = SystemProperty ("tempdir")+"~bb"+TempFile$+".tmp"
  OutFile = WriteFile(TempFile$)
   Repeat
     Read Output$
     If Output$ = "!EOF" Then Exit
     ByteCount% = Len(Output$)
     For i = 1 To ByteCount% Step 4
       Word% = ((Instr(EncodeTable$,Mid$(Output$,i,1)) - 1) And 63) Shl 18
       Word = Word + (((Instr(EncodeTable$,Mid$(Output$,i+1,1)) - 1) And 63) Shl 12)
       Word = Word + (((Instr(EncodeTable$,Mid$(Output$,i+2,1)) - 1) And 63) Shl 6)
       Word = Word + ((Instr(EncodeTable$,Mid$(Output$,i+3,1)) - 1) And 63)
       Byte% = Word Shr 16 And 255
       Byte2% = Word Shr 8 And 255
       Byte3% = Word And 255
       WriteByte OutFile, Byte
       WriteByte OutFile, Byte2
       WriteByte OutFile, Byte3
     Next
   Forever
  CloseFile OutFile
  TempFiles.TempResourceFile = New TempResourceFile
  TempFiles\FileName$ = TempFile$
  Return TempFile$
End Function


.beep_wav
Data "Kab6Hdu2001NGLP5Pcrq810000010040T2S007Gd000100W0P65qOLe20024Yuc0TNU3Zv5wNc6MtRzi5Yk0wDHt"
Data "7ZoHyhbM4r{zvOae8OVbhbaJNxpoZZ4na}2kIn5ioUY38J2MxwH74MtKu7KPGQBobpaLUThISHP9h}UMEnbyujTi"
Data "5KkkzPGp6O7aoMSHKRhwaJCWXk}2PXLPlFgMCIEJzRLP4sdIyuCcDfxwgKSHSjNaUXayglkSGnDrtULt6KEf{vmy"
Data "5dtWt7KLHhJxapSSWEZNR1DFj}UCAo2Bxybd3bV4yuGeAu}tmLeEOidmX2Cfb}UoLX5dp}A392wM{AzC3ctIwtyS"
Data "DwRwd3uRUkJSPn5IklU9A2IEyhzS3L}CxNmWD9V}kbGDPipdW20ha}UvMWvUokTy83EP{gn747BOr6qJGw}xbpOP"
Data "XksvL0jVnU{68IYPzQTB2MVLv7aODg7xf4CDTztKSH51jFgJDnQ6xxrV3bh4yeSiA9Vrh4uERzZTV1iqgVYSH1Lw"
Data "vz1j4qQo{fSv6uVjn6eHJC7tZ34ea}YwLmvaqEL}7ZUg{fv35NpgpMOMMSVjXoWedlUgJnDovDnr6pwlzw515N}d"
Data "oMeMJyNjYp0cbk{nKXPgrDXy93oqwvT18OFbmcGUNCNVXp4xfkIVIobzrRzcA5gws8uyDvJNgLemRyI}SZTMgi{M"
Data "Ja6BoQndF6grmO16L9h5d5T3VRgkSJzQei6HLak3kQPfIM{fiNzCLvczbbf6UhorUKHPdyIPMJzykQzrH5oYkOjK"
Data "Hd{tgNH9OPwraLzEVAodVLPYawcCPbnzefzzNcI7gfHqP7UHbe5jSOEFXtToVOc9VtbyWm00"
Data "!EOF"

.mouse_png
Data "YL1EHmqA6We0000DIKX4KW0002a0000W20C0002uiQ4C0003051CL4K0003}}}}}0Fy410W20WG10G830mKA2X07"
Data "1miC31820WCC314G41O820iB2myH4HSC31092Gm61WW30mGK51eA2WqO61yL5HiE3X871maP6I0I4XSF3nCR6o8N"
Data "5nqS72CO61uC30y820e410KT7IGP6HyL5HeH4HKQ6Y0M5XiR6o4I4XO92GiS728N5nmE3X4O61qJ4nST7ICU7YGP"
Data "6HuK51WF3n851GOQ6XyL5HaM5XeB2mqH4HGO61mI4XKC30uJ4nOD3GyM5XaF3n4nCJPPMLnrTNTSN5q61WK71mOA"
Data "2WaM5XKR6nfXOM36niN{}lxz}Vtx{}lv{Vdu{FZpy}FoylBlx{}ewEZavEJZu{FUtjxTtTtNrzVMrjRLrTNKrDJJ"
Data "qzFGqD3Fpy}DpStCpCpBoyl7nyV5nSN2miAvkRcukBYtjxUoihAmiB2lhw{khgwjhQsfgQcXeQ6WeA2QcfgMbfQL"
Data "bPMGa92DZOsBYuk6XeQ1WO5zVNruU7XqT7HpStDnSN5hQsjdPsTaP6HXOM5WO61QMbfPMLbOM5XIKb99IKb8I4X7"
Data "HqT5HKL3GqD2Ga8sDZOpCpCmC30lBoyjBIqiB2mgAYed9oSZ8oCX8I4S71mP6HaN5nSJ4nCH4H4G410D3GqC30mB"
Data "2mi92Ga820W71mS30mC20W810G420W820W820W820W820W820W820W820Z820W820W8000820W820W820W820W82"
Data "0W820W8o0W82CY020W820W8000820W820W820W820W820W820W8eCW8aE0K20W820W8000820W820W820W820W82"
Data "0W820W8ZBJ8m2g820W820W8000820W820W820W820W820XO20W9A6J80esa20YG20W8000820W820W820W820W82"
Data "A4G20W9n012aRG4292a20W8000820W820W820W8F0W8234Op0W81Tm1f0G4aAG020W8000820W820W820W8hAW82"
Data "2tGK90810Nu10G4r09e20WBjOFTF00002N18MNC000iJ000B4m1tdQoE00023Kb4GLHud8NJLriJGHG6u6{E1YkY"
Data "WaeKJJGJiqcC8RDgH5GG6s9NB14LkmR4Ni6ElHViqMWKuMSwkqj2TcSXvsBdvdrcptTc1Wt9{3oX2ofPC6f1GkCb"
Data "BUBu}LxY{Qi4Bo5ZoVvp7Kz{0Tv4PDGcm5VW8sDjtHy0JxL}b8r1l1ut6MExpZxR19JNqKWTWqHau4UA6TL{{ojG"
Data "MRF4tOA8Hz7BhDfx{SqWC6qXkNGi9Udb0wTOlixqPe5aAAXOGueWNkyeKBR}Xao7XZ3fFgSaNeDBhAXakdvW{chR"
Data "UPYIV6LVzZ1R7UfvrupaChzJYiNePeuwdv4JNYaSalGPFzjihlF580BLGUNlv8lXGL6VdI{1G4YpvH{InEVyEr6G"
Data "zsJsjTmUlI19BtkrlJ2dMrbKDiQukvH3lM2oL5f{3Z{LKweJRd{Ncqxvr6fcpdMPaTu2Ysfr9RkvA{uQv1go9urr"
Data "vzNFG5pJtUIiNBiK3yUD}txGkYyz6NWQIIYIz35R6TlTLwMFxTjdHJjmlmNUi50aQVNRMAffjfYBvwr3OpZsg1bh"
Data "L2acR6GT2NCEZ}CJEv91L2YI8j6ZLoR9bLVXZWMFVyDINTsJg6BzXibcoo5SDs1w2y9SJMIITPgrJiL5nhh{5g0Y"
Data "8pFpFNjRJgV}34D53gUB1JRd9jQwdf6JQl0iBxea8qlv4FpkDyI5sXxoVrPxOkYwvHCJ000004b5JaIkGc22"
Data "!EOF"