aalib1.bac
'-----------------------------------------------------------------------------------------------------------------------
CONST file$ = "bacon.png" : ' File to convert to ASCII
PROTO stbi_image_free aa_recommendhi aa_putpixel aa_fastrender aa_flush aa_close
'-----------------------------------------------------------------------------------------------------------------------
PRAGMA INCLUDE canvas/stb-master/stb_image.h : ' Include the stb_image header file
PRAGMA OPTIONS -DSTB_IMAGE_IMPLEMENTATION : ' Enable graphical functions
DECLARE Width, Height, n TYPE int
DECLARE data TYPE unsigned char*
data = stbi_load(file$, &Width, &Height, &n, 1) : ' Load the actual image in greyscale
'-----------------------------------------------------------------------------------------------------------------------
PRAGMA INCLUDE <aalib.h> : ' Include the Ascii Art library header file
PRAGMA LDFLAGS -laa : ' Link with libaa
DECLARE context TYPE aa_context* : ' This is the AALib memory pointer
aa_defparams.font = &aa_fontcourier : ' Font we're using for our image
aa_defparams.supported = AA_NORMAL_MASK : ' Supported rendering types AA_NORMAL_MASK,AA_DIM_MASK,AA_BOLD_MASK,AA_BOLDFONT_MASK,AA_REVERSE_MASK
aa_defparams.width = Width/2 : ' Width and height of resulting ASCII Art picture.
aa_defparams.height = Height/2 : ' -> The aalib output sizes are 1/2 image input (2x2 pixels -> 1 char)
aa_recommendhi(&aa_displayrecommended, "stdout") : ' Use 'stdout' to display our ASCII art
context = aa_autoinit(&aa_defparams) : ' Initialize Ascii Art library
FOR y = 0 TO Height-1
FOR x = 0 TO Width-1
aa_putpixel(context, x, y, 255-PEEK(data+y*Width+x)) : ' Put the pixels from STB loaded image into AA memory - inverted
NEXT
NEXT
aa_fastrender(context, 0, 0, Width/2, Height/2) : ' Now let AAlib render the picture
aa_flush(context) : ' Flush the result to stdout
aa_close(context) : ' Free memory from AAlib
'-----------------------------------------------------------------------------------------------------------------------
stbi_image_free(data) : ' Free memory from STB
'-----------------------------------------------------------------------------------------------------------------------
/*
.1Q@@@@@@@@@@@@@@@@@@@@@@@QL___,
_Q@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQQ_
.gQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQ_,
gQ@@@$XggggggggggggggggggggggggQQQQ@@@@@Qi
_g@@@@QgggggggggggggggggggggggggggggggQ@@@@QL_
.Q@@@$XgggggggggggzzzzzzzzgggggggggggggggQ@@@@Q\
.Q@@@Qggggggzzzau2j"""""""""j22uazzgggggggggQ@@@Qg,
.Q@@@Xgggggaj""--` `---"jjuazgggggg@@@@Qi
{Q@@@Xgggzaj-` -"jagggggQ@@@QL,
.Q@@@xgggar-` -uggggggQ@@@z,
1Q@$Xggz2"` .:jj22j222\:.. -ugggggzg@@@L
Q@@Qggzr- :jzgggggggggzz2\:::::. :agggggzg@@Q
[Q@@Qga"` :jzgggggggggggggggzzzzza\:., {zggggggZ@@L
g@@Qggr` :zggggggggggggggggggggggggzz\:, jzggggggQ@Q}
@@@xgz; :zggggggggggggggggggggggggggggz\, 'jzgggggQ@@L
@@$ggz; :zggggggza22jjjuazggggggggggggggz\, -jzgggggQ@Q\
@@$ggz; .1gggggz2"- --"jazzzzgggggggga; -uggggggQ@Q,
@@$ggz; :zgggga"` --""""jaaggggga, :agggggQ@@g
@@$ggz; {gggga"` -"uggggz\, {zgggggQ@Q_
@@$ggz; jggggr` :zggggz\: -uggggggQ@Qa
@@$ggz; jggggr jgggggga:, {zggggggQ@Q
@@$gga; jggggr :jj2\j:::., :aggggggz\, jzggggggQQi
@@$ggz; jggggr jzgggggggzz222\:., :uzgggggz\, 'jggggggZ@Q]
@@$ggg} jggggr :zgggggggggggggggz\, -jzgggggz\, :aggggggQ@]
@@$gggr jggggr .2ggggggQQQQQggggggz\, "agggggz; jggggggg@p,
[@@$gggr jggggr :zgggggQ@@@@@QQQggggz\; -uggggg2, :zggggggQ@]
[@@Qgggr jggggr jgggQQ@@@@@@@@@@Qggggz2; -ugggga; jggggggQ@L
[@@Qgggr jggggr jgggQ@@@$X$XQ@@@@Qggggz\, :zgggg} :zgggggQ@p}
[@@Qgggr jggggr jggQ@@$Xa' :o2z@@@Qgggga; .uggggr, 'ugggggQ@@]
[@@Qgggr jggggr jggQ@@X:___ :zQ@@@Qggggz; jgggga; jggggzQ@@]
[@@Qgggr jggggr jgg@@$r1QQQQQQ@@@$xgggga; :zgggz; :zgggzg@@]
[@@Qgggr .zggggr jgQ@@Q}g@@@@@@@@$Xggggzr` :zgggz; :zgggzQ@@]
[@@Qgggr :zgggz; jgQ@@@:g@@@@@@$Qgggggga' :zgggz; :zgggg@@$]
[@@Qgggr :zgggz; jgQ@@@zQ@@@QQXgggggggz" :zgggz; .zgggg@@@
[@@Qgggr :zgggz; jgQ@@@Q@@Qggggggggggar` :zgggz; jgggQ@@Q
[@@Qgggr {gggga; jgQ@@@@@@Qggggza2jjj:` :zgggz; :zggQ@@y
[@@Qgggr jgggga` jgQ@@@@@@pa2j"--` :zgggz; :zggQ@@]
[@@Qgggr jggggr jgQ@@$Q@@n-` .{zgggg; :zggQ@@]
[@@Qgggr .uggggr jgQ@@pQ@$} .::\j22j22zggggz; :zggQ@@]
[@@Qgggr :zgggg; 1gQ@@@@@p;.::::::::jzzggggggggggggga' :zggQ@@]
[@@Qgggr :zgggz; :zgQ@@@@@$zzzzzzzzzzggggggggggggggga" :zggQ@@]
[@@Qgggr :zgggz; :zgQ@@@@@$ggggggggggggggggggggggggz"` {gggQ@@]
[@@Qgggr :zgggz; :zgQ@@@@@$ggggggggggggggggggggggz2"` .2gggQ@@]
[@@Qgggr :zgggz; :zgQ@@@@@$ggggggggggggzaa222j22j"` .jzgggQ@@]
[@@Qgggr :zgggz; :zgQ@@@@@$ggzzzzzzzzza"-`` .jzggggQ@$]
[@@Qgggr :zgggz; {ggQ@@@@@$aj""""""""-' :zggggggQ@$]
-@@$gggr :zgggz; jggQ@@Q@@p; .:jzggggggQQ@p}
@@@gggr :zgggz; jggQ@@Q@@p, ..::2zgggggQQ@@@@y
Q@@gggr :zgggz; jggQ@@Q@@p, .:\j2zzggggggQQ@@@@@Q!
4@@Qggr :zgggz; jggQ@@@@@p, .::::\jj2\2222zzggggggggggQ@@@@Qg=
[@@Qggr :zgggz; jggQ@@@@@p\jzzzzgggggggggggggggggggQQ@@@@@x`
(@@$ggr :zgggz; .1ggQ@@@@@@QQQggQQQQQQQQQQQQQQQgggQQ@@@@$F!
@@$ggr :zgggz; :zggQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q@@@@@A^
@@$ggr :zgggz; :gggQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q="
@@$ggr :zgggg} jgggQ@@@@@@@@QQ@@@@@@@@@@@@@@@@@@@@@@@Q_
@@$ggr .ugggg2, jgggQ@@@@@@@gggggggggggggggggggZQ@@@@@@Q@Q]
@@$ggr jgggga; jgggQ@@@@@@QgggggggggggggggggggggggZQ@@@@@QL
@@$ggr :zgggz; jgggQ@@@@@$aazggzzzgzzzgzzgggggggggggZQ@@@@@g,
@@$ggr 'zgggg\ jgggQ@@@@@p;-"jj"-"""""""""""""""uaggggggQ@@@Q_
@@$ggr jggggr'jgggQ@@@@@p, "uzgggggQ@@@Qi
@@$ggr, jggggr'jgggQ@@Q@@p, -jzgggggg@@@Q\
@@$gga; jggggr'jgggQ@@$@@p;::::::::::::.. -jzggggggQ@@Q,
@@$ggz; jggggr {gggQ@@Q@@$zzzzzzzzzzzzzz222222\:, jaggggggQ@@Q,
@@$ggz; jggggr :zggQ@@Q@@$gggggggggggggggggggggz\, jzggggggQ@@g
@@$ggz; jggggr :zggg@@@@@$ggggggggggggggggggggggz\: jzggggggQ@@L
@@$ggz; jggggr jggg@@$Q@@Qggggggggggggggggggggggga; jzgggggQ@@Q]
@@$ggz; jggggr jgggQ@@Q@@pzzzzzzzzzzzzgggggggggggg2, jzgggggQ@@Q
@@$ggz; jggggr {gggQ@@QQ@$r"-""-""-""""jj22jugggggz\, jzggggg@@@i
@@$ggz; jggggr :zggQ@@QQ@@r -uzggggz\; 'jzggggQ@@Q}
[@@$ggz; jggggr :zggQ@@QQ@@z:::::::::., -jzggggg2: :ugggggQ@@Q
[@@Qggz; jggggr :zggg@@@Q@@Qzzzzzzzzzz222j:. -jzggggga; :agggggQ@@L
[@@Qggz; jggggr .uggg@@@g@@@ggggggggggggggza; -jzggggga; {zggggQ@@Q]
[@@Qggz; jggggr, jggg@@$x@@@Qggggggggggggggga; -jzggggga; 'jgggggQ@@Q
[@@Qggz; jgggga, :zggQ@@x@@@@Qggggggggggggggga:, -jzggggga; :zggggQ@@@i
[@@Qggz; {gggga; 'zggQ@@Qg@@@@@QQQQQQQQggggggga; -"agggggr, jggggg@@@Q,
[@@Qggz; :zgggz; jgggQ@@x9Z@@@@@@@@@@@@Qgggggga, {zgggga' :zgggg@@@@]
[@@Qggz; :zgggz; jgggQ@@Q}-zQ@@@@@@@@@@@ggggggz; :zgggga; jggggQ@@@Q
[@@Qggz; :zgggz; :zggg@@@] (^==OZ@@QQ@@@Qgggggg\ :zgggga; :zgggQ@@@Q
[@@Qggz; :zgggz; :zggg@@@] CQ@@gagggga, :zggggz} :ugggQ@@@@
[@@Qggz; :zgggz; :zggg@@@] Q@@Qzgggga; :zgggggr jzgggQ@@@
[@@Qggz; :zgggz; :zggg@@@@Qz\_. .zQ@@@Qggggz; :zgggggr, :zgggg@@@,
[@@Qggz; :zgggz; :zgggQ@@@@Q@QQQQ@QQQQ@@@@$ggggz; jgggggga' jggggQ@@g
[@@Qggz; :zgggz; :zgggQ@@@@@@@@@@@@@@@@@@@Qgggga; jggggggz; jggggg@@p,
Q@@xggz; :zgggz; :zggggQQQQ@@@@@@@@@@@$QXgggggzr` :zggggggg\ {gggggQ@Q]
Q@$gggz; :zgggz; :zggggggggggZQQQQQQQQgggggggga' {ggggggggr :zggggQ@@]
@@$gggz; :zgggz; jgggggggggggggggggggggggggga: jggggggggr .uggggQ@@]
@@$gggz; :zgggz; -uzgggggggggggggggggggggga2- .zggggggggr 1ggggQ@@]
@@$gggg; :zgggz; -"jj22222j22j222222222j"-` jzgzggggggr :zggggQ@@]
@@$gggg; :zgggz; :zgggggggggr :zggggQ@@]
@@$gggg; :zgggz; .:zgggggggggg; jgggggQ@@]
@@$gggz; :zgggz\:., .::j2zggggggggggz; :zgggggQ@@]
@@$ggga; :zggggzzz222j\::.. .:jzzzgggggggggggggr` {ggggggQ@@]
@@$gggr` jgggggggggggggzzz2j::::::::::::jjzzggggggggggggggggz} .zggggggQ@@]
@@$gggr jgggggggggggggggggggzzzzzzzzzzzgggggggggggggggggggga' :zggggggQ@@]
@@$gggr :zgggggggggggggggggggggggggggggggggggggggggggggggza; jgggggggQ@$]
@@$gggr jaggzzggggggggggggggggggggggggggggggzaau2j22j22j"- {zggggggg@@Q`
@@$gggr -"""""jj22uazgggggggggggggggggggga2"--` .jzgggggggQ@@x
@@$gggr --"""juazzzzzzzzzzza2j"-` .jzgggggggQ@@@!
@@$gggr `---""-""-""--` jzgggggggQ@@@x
@@$gggr ..:::::jzgggggggQ@@@X`
@@$gggr .:\j2zzzzzzzggggggggQQ@@D`
@@$gggr, ..:::::::::\j2zzggggggggggggggggggQ@@p!
@@@ggga2\22\22j22j2\22\22j22j2\22\222zzzzzzzzzzgggggggggggggggggggggQQ@@$?
Q@@QgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggQ@@@$]
C@@QggggggggggggggggggggggggggggggggggggggggggggggggggggggggggQQQQQ@@@@x`
Q@@QQQQQQQQQQgggggggggggggggggggggggggggggggggggggggzzzgggzgQ@@@@@@@X=-
C@@@@@@@@@@@@@QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ@@@@@@@Qv
[Q@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Qy^
-===========4Q@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Qy
*/
Generated by GNU Enscript 1.6.5.90.