create program to create bitmap
Re: create program to create bitmap
@leopardpm : oh, you are right, I was the fool here. I misunderstood your sentence.
Re: create program to create bitmap
you are no fool, we were just on different wavelengths in conceptualizing the same problem... both correctCherry wrote:@leopardpm : oh, you are right, I was the fool here. I misunderstood your sentence.
Re: create program to create bitmap
Would like to ask, is there something like a final conclusion of this thread? A program that works in Windows and Linux, 32 and 64 Bit? That produces pure fb code without problems?
Re: create program to create bitmap
@lizard,
sorry, no luck <-- it's April fool's day <lol>
sorry, no luck <-- it's April fool's day <lol>
Re: create program to create bitmap
I guess thats the whole year here.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
Re: create program to create bitmap
With FBImage you can read images from files or memory.
So you can put your image (png, jpg, tga, dds, bmp ...)
in an array as source code and read it from the memory @array(0).
Joshy
So you can put your image (png, jpg, tga, dds, bmp ...)
in an array as source code and read it from the memory @array(0).
Joshy
Code: Select all
dim as ubyte array(...)=>{ xx,yy,zz ...}
var image = LoadRGBAMemory(@array(0), ubound(array))
...
Re: create program to create bitmap
Thanks, Joshy! That seems reasonable.
I am asking because i haven`t found a perfect datamaker until now even here:
https://www.freebasic-portal.de/code-beispiele/
where are mostly solutions for common problems.
I am asking because i haven`t found a perfect datamaker until now even here:
https://www.freebasic-portal.de/code-beispiele/
where are mostly solutions for common problems.
Re: create program to create bitmap
Coding one is trivial:lizard wrote:Thanks, Joshy! That seems reasonable.
I am asking because i haven`t found a perfect datamaker until now even here:
https://www.freebasic-portal.de/code-beispiele/
where are mostly solutions for common problems.
Code: Select all
#define toString( s ) trim( str( s ) )
screenRes( 800, 600, 32 )
dim as integer iW = 320, iH = 240 '' image dimmensions
bload( "woman-lips.bmp" ) '' replace for any bmp
dim as ulong clr
dim as integer fileHandle = freeFile()
dim as string s
open "test.txt" for output as fileHandle
print #fileHandle, "data " & toString( iW ) & ", " & toString( iH )
for y as integer = 0 to iH - 1
s = "data "
for x as integer = 0 to iW - 1
clr = point( x, y )
s += "&h" + hex( clr ) + iif( x < iW - 1, ", ", "" )
next
print #fileHandle, s
next
close( fileHandle )
Code: Select all
screenRes( 800, 600, 32 )
restore imageData
dim as integer iW, iH
dim as ulong clr
read iW, iH
for y as integer = 0 to iH - 1
for x as integer = 0 to iW - 1
read clr
pset( x, y ), clr
next
next
sleep()
'' generated datas go here
imageData:
'' ...
This is, IMO, pointless. There are other better solutions already posted in this thread. However, the reverse of this (posting binary code as an image) can be much more interesting ;)
Last edited by paul doe on Apr 03, 2018 2:56, edited 1 time in total.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
Re: create program to create bitmap
@paul it's better to include compressed *.png or *.jpg images as source code !
Joshy
Joshy
Re: create program to create bitmap
Only if you can somehow pack any image, at any resolution, without exceding the 60.000 char limit of the forum ;)D.J.Peters wrote:@paul it's better to include compressed *.png or *.jpg images as source code !
Joshy
Re: create program to create bitmap
Great Paul Doe. I changed your code to work on a buffer. It works with my card spritesheet, but the resulting program is to long to post here. With Joshys version it will become long, too.
Posted here:
viewtopic.php?f=7&t=26561&p=245317#p245317
Posted here:
viewtopic.php?f=7&t=26561&p=245317#p245317
Re: create program to create bitmap
Glad to help. Yep, if you want to preserve all the information, the code generated is too long, unfortunately. Also, compile times increase dramatically the more data's you have. All in all, I still think that a link to an image (like you provided) is the way to go.lizard wrote:Great Paul Doe. I changed your code to work on a buffer. It works with my card spritesheet, but the resulting program is to long to post here. With Joshys version it will become long, too.
Re: create program to create bitmap
Yes, compile time is long, but execution is still quick. Naturally it would be possible to reduce data size by fewer colors (16 colors should be enough for this) and using smaller cards, .png etc. The fascinating thing is to have all in one listing. With separate files there always can be problems.paul doe wrote:Glad to help. Yep, if you want to preserve all the information, the code generated is too long, unfortunately. Also, compile times increase dramatically the more data's you have. All in all, I still think that a link to an image (like you provided) is the way to go.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
Re: create program to create bitmap
I added my base64 memory en/decoders to FBimage so you can include images in source code or post it on forum.
With "test_encode.bas" you can create include files from images or copy the data lines in your main *.bas file.
Joshy
here are how it looks.The result of 12K data lines.
With "test_encode.bas" you can create include files from images or copy the data lines in your main *.bas file.
Joshy
here are how it looks.
Code: Select all
#include once "FBImage.bi"
restore mypicture
dim as integer imageWidth,imageHeight,nDataLines
read imageWidth,imageHeight,nDataLines
screenres imageWidth,imageHeight,32
dim as string EncodedImage
for i as integer=1 to nDataLines
dim as string aLine
read aLine : EncodedImage &= aLine
next
dim as integer nBytes
var buffer = Base64.DecodeMemory(EncodedImage,nBytes)
var img = LoadRGBAMemory(buffer,nBytes)
if img=0 then
print "error: can't load image from memory !" & *GetLastResult()
beep : sleep : end 1
end if
put (0,0),img,pset
sleep
deallocate buffer
imagedestroy img
mypicture: ' the label are optional but usefull for the restore command
data 640, 785, 204 ' widht, height, in pixels and number of data lines
data "/9j/4AAQSkZJRgABAQEBXQFdAAD/2wBDABsSFBcUERsXFhceHBsgKEIrKCUlKFE6PTBCYFVlZF9VXVtq"
data "eJmBanGQc1tdhbWGkJ6jq62rZ4C8ybqmx5moq6T/2wBDARweHigjKE4rK06kbl1upKSkpKSkpKSkpKSk"
data "pKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKT/wAARCAMRAoADASIAAhEBAxEB/8QA"
data "GgAAAwEBAQEAAAAAAAAAAAAAAAECAwQFBv/EACwQAQEAAgIDAAICAgIBBAMAAAABAhEhMQMSQVFhE3EE"
data "gSIyoRQjQpGx0eH/xAAYAQEBAQEBAAAAAAAAAAAAAAAAAQIDBP/EABkRAQEBAQEBAAAAAAAAAAAAAAAB"
data "EQISMf/aAAwDAQACEQMRAD8ArRgMOggMAQMaAhQQAUACIwCaR2jQqcom4rTaCdaOC2AB9UnfHY3AMFaW"
data "9gYhfD2geiGxQAgAHYWgAAGwAAIU9mUMAQh7AD4RgY0Ry6A/oAAGDAlQoOgPRlDAtKhRQhAxUUgOQIIZ"
data "GBHsEAMgBwyMUaMjiocMjAxBABqSIouVUTFQFRUTFQRUVExUVGmHbfHpz4dujHpqM14E6MpDYbEA0OQP"
data "RAUCugRe0gKBbn5Tcp8A9lanLLU2zufINCtZ++02g0uSbki5J3aDT2L3Rf2NguZDbO38Fv5AaexzJlvZ"
data "+3IrT23T2y2Jld6Br7cntlKcoNdjbPapQWE7h7QMFKAMbA1yBwEYoAADRwtGBGBoDHQAA9kJ2CpvRiAA"
data "YCBwyCoY7AQLo4AAIyUMDsICEPhiiAADG+SCi4ChiHDSYKNMUocXEKxBcVExUEXDiYqKi8e3Rj058e2+"
data "HTUZrw9Athhsxam7TcrAVam5bRcrvafazmAu21nlb+RcrU0U/fXdL+T8Jsu+S1yB3MrkLjsriIndPZ6p"
data "XHcAt8jeh60av2AJzKLNCf0LLQK3hO1at7LWgLev7H7OybLWgFysGxUyKK9lTKflGyvKDW5CZM9CA2mR"
data "+zGXhcvANZTlZzITIVps5edM/b9nL+UGmxOU7EoLNMvJ7AGRwAABTEIwGuThKAbMjQMEcA4Bo1Qj4IwE"
data "FAAADoC0NnSQBlQKYEAF0cEhyKhwyhgYIApURFQFRUTDii4uM5VyiLnS4zlVKqNce22HTnxyb4dNRmvD"
data "6BCMNipv4V2WgZ2bLTSwtfpFZaHq00NAz9S9Wl5GuAZ+o9Z0ukCdc8D1UARoeu+1Cgn15FigCPUrjw0o"
data "0DC4cD0bWT8F6/FGNx+Jsb6FwBz2cl66/ptcE3ERnR1VWapdgm3Ry8DSda6oLmR+1RP2YLmX57V7M+oJ"
data "eQazI5eWfsJRW0yP24Y+xzIG0u1bYzJcyQabCZVbAxOx9ApgbIFQSlDiBwyPYGaZTAUyNUAA/aAAChUy"
data "CBkIexSMBUM9FDAGQAwNlwCjKHAVKqM9n7A1hyspkftFRp7CZ3bL2Eqo6cc+XV4suHn45curw5rEryQW"
data "zYbBpOUBYR7K3QFR9FvHaZQOkLSoAj+EKDK/2AMgAFoIwASewFGgP6Aa5BGBaLX6UOBGdwlRcGwBz3DR"
data "ab2J9FGOU0Vja4fpNx7EZ6/Iv5XcU2WAWz2XBKKOcRMMFRUqIqINJkuXhjFSorX2Pf5ZbVLsGkETtUFU"
data "cKGgZlOD2AAOdADKGINAFoAAAMi/owAA7A4ZBQ/pkNgexsrU3IFbLafZNz/ANfbQ92PvU+1n0HR7nMt9"
data "Of8AlOZzW6qNvew5nL2w/kl+qmcVGuzlrPa8KC5Lt0eHKzJljf06PH6Wa6qxK8uGnfA2w6Hs9pvJbEXt"
data "No+CilSPZABRSAbEItgqkW+RsD+D6m0TKAoXlHsLl+wPZ7Z+xzKfkRex0j3n0vcF7G2Xt2JlzAbBPsPY"
data "FhHt2ftKBiUtjYGWhvZwEa/Kbi00AY+nHwri20LiDn1oNbim4qiPqonmVU2B7OFTgotXLUcKnKC5frSM"
data "4qUVcqkyqiB7BGBgaMDgLejAEZCGVAoAQAU/gA+gKC2W1Q9jaLlpGWYNLmm5M7l+y3sFXLZXJNRtRp7b"
data "TupPfIKlonRap4zYisYuY7+DHCtvH4wGGFrfHxnjjI1xgFjg1ww0rx4tpg3GK+ePe0045OqvpUpT2oBS"
data "FoAbLadgq0tptTsGlqfZFyTc4qNPZP8AJpjl5dI9rrgw1vl5In+afWFLW7yuJrf+XfUT/JcpuM9yWT5f"
data "qp+DA/5LrntN8mU+lZZeOCu70or+XL+zmeXG6nRzHqiH72ieSy60WUsnAsutyILnl0r+XdY49dHJqaMV"
data "t/IqZ/hz/S/HJg6vbapk5JllL2qeWxMNdUvKnPj5edVrjkir2NlxQKDmwABXHZj6CPXdK46aC4iMpCs0"
data "19dUtAmKnFGjgHFTgocgqorfxJgaoUNAxCOAZkNgAYAgZAD7IAaaaaAt0m5Fl2iqh3JFF2NWgWyP0pzC"
data "/VE7/I1tpMJ9OSCM5jVTC2r4VOAKeNpj44MVSoqscdNMUY1cBpF4y7Z4ujx48rErXxRujCaU6Ob5k9lk"
data "mflydl7FRuwewK3RbtNyLcoHsrStn5T/ALA7km5CpVE5ZW1ParxSt0qaVxLVG90rfwqD2/M0X+05ZfZ8"
data "PexBb3Dmre+Sk4K8cqNLrX7TvlPtfn2jc/0gv2nZe8qeZ+iuprdijSeXjXFn5O+bHemF3J/xOa7k0Da+"
data "XG9/egzxw5t+1WOOpzQP8jWuLy1x8e/qr4toOfKyWdlJ21y8e/iLLj30BY396aTPX1Eu+jl55RW2PlnX"
data "1pK5pFTPLG/pGnT2GeOcym17RVd3sFsbA/po/wBnsD7NMqtiEOx92cFAlMSAat8JhyoK2aZDgKh/ShgY"
data "IwBkAAMSANA9AE3hGWX4XlrTK2AV5LWxcpPqb5pFRfroakY3z1nl5tria6faSlfJJ9cV8tvRe17q4muu"
data "+Tk/5I4/bf1cyn5MNdPvNdnPI55Zl9PXHJhrqx8jTHLbhmVnVaY51MV2Y5ctsa5PFlvt0Y5RFdPjns6/"
data "Hi5/BZY7MeI3IxaZkGmHzdLX6Ok5O5WcJ1tVpb2CbC1V6AjL1pXbWpuKjPnRWrs4Rcb8BFz0zuVa3C77"
data "4TcedqiN3Ze2p+16TZZxjqT+lQuLerzFY4y3+kzvlc4gitTvTPOfOm2N3Gfkx5mlGVn5t0LqzXOv001s"
data "tXr4gjHrW/8A+JuvbU5s/wDDW6k/E2nXP7VEy8a3oTd19TruW8flU3q398fkVc9t8birbPqce/8A9r5o"
data "Kwzrqw5jm8eMdnjmogWUlnLLLCdOmxGUQceWO7x8R/p1+rHyYTdoqJVfEzv9LnOxSwvr/TWXbLKfo8Ok"
data "VtsJnKtoHOKPpb2IBq0hQqgmbVABykaBwAAr+jiYoFQy0cAHAYghiHoC0Z9IzzmMUO3TLPyTGb25/N/l"
data "SW88uXPy55bu1w11eX/I1/TDL/J2wtv27T+PyuM60vlys4qffKzksZ+1THfUqoUzv7a443PpOPjuXDp8"
data "Xiyn3tRj/FlO8dq/hy1xP9O7Hxccw/45BNeZn48plzjlE5YX8Xh6n8cvacvDNbk5RXmTeN3tc8mW+enV"
data "n4scu5y5/J4riAmS8cv3Kx1YeON3bdg68Mt8T67vB/j5Za304f8AFuEu7u16vh8mGP8A8ufwYWujxeH0"
data "jfblnkzyy1Lw6PHje60yuGNAR84VMOTuktKvRAVJQEIrFSFoEaKxolRnYixtf/KbFRl63Zesaa5HrsRj"
data "f2U/20uOk67ULf8ApOe9cKsPX5Bnj+FFlhe8br8ludXsRVx4/ZanF5OZca/CfbetfQO47gmMk6GPEVxo"
data "E6XjrXRKx5+A08eP/KbdeEY+LHjlvOAP4mq2nJFZ5RjnzWuVmqxyoM7NKxvKc/wWNv0VreU9HvYkQVOY"
data "aZ2oUzKGgWzlpHAOdqLgToVWzTDQOU0xUA4qd8JOAvXRwpTk/IHFaKRUggivh6ZeXyTGW1Rn5vL6OHz/"
data "AORcuJS8/k9/vDDlqRnRPz9GVxxm7lBJTuMy7m4qM9j2l41U3fvZf+v/AOBvf6n5VF4d8/Gk8mmWGspt"
data "eugbTyccRv4vLOPy5JGnjn/KcA9LxZbjSMP8eV0SAeiuGouRcm4iuLy4+vLDPVx6d3nwlxk6rny8c1oH"
data "Jj4vb/rrf7b+Hx5YX/3PFuKnhm9WzH910YeDzyS4WZSfiqL8eH+P5Jzj639Lwwxxyuufwn/03l8tntjj"
data "LPsdXh/xrJ/y3VZX4cY6cZpOHjmMWIAAD5wgbk7pGjsKgKmGVAwXJXiAorClGxC1+SqtleVE6GlaAIyx"
data "2jLHbWlpUY+t/Cbet1v6/GWeAhf1SuGOXOtX8jVmtqUY3xZ4ySc/miTKf9nRvgaxs/5QHP7HvUbXxY27"
data "hfx49fARjOW3jxExioDTHLSplPzGO5C2Do/kmu0Z5/hl7aoqKMs6zyy/KuxfHvnYM9/ae5o/T8ncdQGX"
data "tq8ReOXEK487+jSK1lPhOPWqqQDGypzkBTlIIKlVESXXXBwFdHEztQpnKkwX2cSqILnS5ERciocXIUi5"
data "OALK6jzv8vzf/F3ee6xeV/kXfkqxKy/1pnLrK72074R5I0h75V84jPDKdXtcogyw3+IX8f8Ax7Xsb2DP"
data "HG92rk564VoQBI28M3UYzddXgw2I6PDjrFrESaXBVxUnCcej2CPJzlIL4avxzfk5dcxmUBy+PxTrKS/2"
data "6cf8eYyXCa/qoy8VnONbeLPVky4qpTxuWPcv9tMbs+y9Z84VlUAMARgHzZHoOTuRGNoEVMdgXH4K9GSh"
data "HYNfQBUlFQIDQ0ILBoQAE2H9PaoyuJev1sn10oz1YLKvR62CMYKuY0ZQE4z9nqnO9q7BnOey5l0u487G"
data "twC1xBjNXlcgsBNxnwTnhU65hZT8dgRX8Lk3C9QRMYPVpJoIrOY88KsPQsBOhDAF9B6JAzKK3sBD+lNn"
data "OxTikqgCLiYufoF4tMYjFpjBFSK0MYeXEUc/mu+HD5vFvPenflN1nlhLvcEebl4tc6L+PjWUd2Xhl6Y3"
data "DSo5cvDvnFFxzl6dmi9dg5Zld6pyz8t74sb3EZeCb4UTDk2f8OW927jXx+OzsQ/F43X48fWMsJprjQbS"
data "nGcVKDT2khWo5qp/QrXxZSdtpbf+tn+3PNW8XX9tZhl3vX7Ea4+TKXWWOv23mMyjDH2nGUn9xt4brhUq"
data "8P8AjxViyU5FZABgQAB83SphxehJ0dEBAxVQi3wdIB8HwABAWwB6I/hABYBeKAKTnkwBZT8F9Vvgvog0"
data "VUAE6A7GvgJ1yqFrk4oeinFMaAEej0CNCRVLQgkV2W+AKLEaXYSBDWzpKFrRa0ql/YF8FFIDObHwRAzh"
data "fTFNUqfip2BytIiLx7BphxGuLKcNcYIuDPpWMT5JwqMb2nKLRQZ5XTLLVaZc3hlewZ2a5C7yiz8Cikco"
data "VD3wXtd8Kxm+xcQwTPXa55P/AKT68CY64BrPJL1S/lyxvUsTMONz/wALwwmV19gKx8u5xxWmOWX2bib4"
data "ZeuKeGVwy1lOFRvjhMpw1luGPPMT49dzpv68Afjyxymt8VpjLL+Y58cfW8cOvx6shErTG7iihtMAAACA"
data "B82PgFcXch8BCjcIa2YhaGjJQaIwBUlaICBl/oABINgOxoDYCjg+yogGwNAco2UH0U9gQXoBexstDQit"
data "jY0FCLR6MEw9D6YED+lUCI5ABUvh0lCLrtQoEcEHKB6OFP2YHFRKoKqLxRF4iNMW2LHFtio0x2WfSsRn"
data "P+IjnTYuFYDHKMso3yxZZyzsGZaO9FoUevBevP1UPgE4zSho9bFPFXpCk5XBCxx54V6c76pztcBWE4X6"
data "TIpGkgg8eGo3xn/FGNi5VQ5G3j4ZRrgsStQRtMmCAgAAPmwCcXcEZABoD4ABGAAACkYAhrgH0okVWi0C"
data "KFWH6iJB6GtgPhcmAEAg0KD2WhIAMaAAbIxAB2KAIx/oCpKLQERgC2AaiT+HokABr6c5AD6ZaFVFRMOA"
data "uLkRGmNEXi1xZY9NcFRrirLpGDT4DmymqO1eT/sUBnYixtYiwHPcE3Gx0WFYDn1Q1uBeqKiKg9J97P0A"
data "RcKeO1c8dAReMEwVjjoFRpjoorcVFessOY/spFSKh47b4MY2wWJWgIRplRkYAACPmqSi04vQUA6AhAAA"
data "J2KAMhQAAEAdAU4BdA6FCAAAAANFozAtFpQAgYAtDRmCdBRAVg+fs6AICgC+EdooiRrjZgE/R9P+hrkA"
data "DLQDswAHYA0Bw4WznIq40x6YtcaI0wbYssGuKovHtrIzxaYqMvLizkb+ScMgGk2LgsQZ3HcR66beqdKM"
data "tFY1uPHSdIM9HIv1/JaA8VxEioCocLZwFf0XscV67+ArDWU2qRGM9emmNlUPHitsGUa4LGas4RtMnDKG"
data "ABgR80Qo7cXoK8iAAVAFAAGIX0AANl9BigAAP6MgIZXZhQF3TEgAGNAADAtAyA9FoxIA0WlEIRK0mihN"
data "V8IC0VUVELZH8H0C2YGhSMWbH+wFOAgBkACihgcq8bESLx7BtjdN458W2NVlri1xY4VtiqDObjGx0Vjl"
data "OQZqibNHiiqs/BaVBpUTqFcOVa5PQM5gfo00NAy9DmLXRXENR6/oSNNHoGckVD1BrkAqJVAXGuDHFtgs"
data "StAArJwyhqGAAfMjoyri7ggAHZU+iAD+wBB2ABQB0AHQAAAGAPRQCGC+GoB8EMBAZADH7AAxDETYDyIC"
data "0WlFQTS6V9TeRQCoAFyYAjBAZGKBGRgAD0BHCPYGqJ2qA2xa41jja1xVG+DbFhg2x6VlbPKctE2AxziN"
data "tcptlZyirxqmUyXjkooAxBIqJPYHoa0JTAFYegCdnZRYNADkI4Cse22DLFrisSqBBWVRSYqAYAUfNbI6"
data "Ti7hKqmAcAAEOwAAHY2AA2QHS0Y2AHIE/oBsxB9AQwQitH8Ts50AMpDAbOQofShgtmIWgZAnrZVVqRQV"
data "MreQTdCCgAAAAgHwCAMQjI4KNGLsgMaH6H0DViUOA0m2uLHFpNqjfx1vgwwb41Wa0gpwXoRnlGOcbVnn"
data "BWP1U5hWCcIrTG/DRtUuooez3tJgculTJJiL2NphgdpbPstANqnKdCbBpj21x6ZYtZ0sZpghBFw4mKii"
data "gRqPmiMOLukCgANl0AFoAAv0Po+gAZfT2AIABsyMAf0oAMAAZkAM6WxvgQ4N8DQUEMtUwPZAhCK8KTRS"
data "tK3d6PogKAyAAX8l9AAygADswAE/Z6AjhCAejhADVExUBeNaT9MZOm2PQNsG+Fc/jb4tM1tir4jGqGUZ"
data "M8uV+S6ZWjUTZynR2lvVRQqXZb2ICulIVwIZyp2YKGyPgD6Gy2YKBRUVF4tPjPFpelZpCEcRFxUTDjQo"
data "yNR80NgOLuV7IyAgZAAC38ADo6ALQMgABgR9CDoABDAaEBgARgADARRQ4IB9BAKKNkoLSplUCopFaB7L"
data "RTgWgCGwoewAAOJigA5BgWudmBoBoASfkBFQjnQLlaYdMovG6Bvg3w6c+FdGCs1tiv4zxXK0jLz8TbDb"
data "p803hXFvTNWL2NI2cyqKoy3sgWJfiQouz8HEy8DYLMtywSiGaVQDnC4iLx5BrgeQxGSsVJxJxBpFREVG"
data "4iwRxUfNl9Mq4vQKQ38AAudmALoWCgAQACQbMqAgPQ0BQ+yGwMAwEH0p2ewMEcAwIAOGQ3sD4FhiiJpH"
data "U2gNlsit40A2LSvZUAVBTmgYI4oOzAAbVEn8EVAC7FMQdgABsAZykIC14ona4DXDt0YOfFt41SuiKiMe"
data "lytMjKbjz/JvHyZS/l6Li/zcdZzL8s1Yy2cqIJWWmmz2iU5eVGkoKGIr4CgkUXJs0RfaBgoaio0xZyNc"
data "YRmtJxCyP4nKrWU08ak8axBpFSolVHSIs4mU9tI+dpWmTi9A0RkBAwBD4aaA+DZfowBlowHwps+hsARg"
data "CnZ/oaMAIUMDAhgADACAwFA3wVAJppoF2mmmiFe9lsWp3Yoe9nooqcQB9BgB8A+HAEPRGBwAreQB6AAa"
data "AAGJSEFVO2mNZzteFBvi28fbDCujCrGa2itFjOFRWTjn/wAzHfiv65dCfLj7YWfoI8uVW0dWz8VUrDor"
data "ZxMpwRculbRFRRZQQxDOUooFQFDBeLXFng1xaZp2otO1NZtZKnEnGZRpFRnFR0iLlVESnG2Xz9HQocXp"
data "AAAgZAQMgI+gAI9AAPoAAAAAAYA9FoQAoaAAwABwACB1NoFUVVqbQLaadSqJBXinEFRSYpVBgaoA9EYg"
data "AAGLyAAkA2AAoAAyhinOFTpMOA1wrp8dc2FdHjvCxK6cOlxljk0lVhRZdHCy6B5f+Rj6+bJMaf5c/wDd"
data "/tlGK6RZxMpwFyqiJFwDi4iKiooyhwFRUTF4zaovDppbqJxgyvJWKWytBVi1AIQZFynKiU9uvLLTZys9"
data "nK6RHiA6Ti9ILZ7KgZUDsCMfABAyQAAAfQAB6IBQwABkDgHAJ0cQAhSKAaAKqFU2jLilQK0qL2QhJyWm"
data "qM8r+lYFlwWN5/CK1ODGK0BGZfRSp/BTELQplYA7AAGXY7ggHoQUgP6ZbCiocKHKg0xb4Vz4tcMlHTj0"
data "1wrnwya41WK22nK8DfCcrwqOL/L/AO0rGctP8rLeWmUYrpFRUqYaC4qVOKoopUTFQRUUmL0oMY2wjPGN"
data "YrNO3URs86mVjqsGCgYARkAPZE6c1mr2No2VydozXlgBxeocAUAWxAABGEC+gwBGAAI+iAGRgD6KBQwI"
data "AOHtJoGZQqB7TaLdRNqgyTDKiClQPvKgTpRcgzy0jqtspEXHgGnjzl4aacs3jk3wz9pwirMoYo0NGAKQ"
data "rPi9FrYJCtDXAhFpWiAtBVhAWqIfQmhTOSlFTgRWPS8URWINca2wvDDFthFRtEZ5STs7dRyf5Hk+QRj5"
data "rvyVMpW7NlpUVExUBcVESrnKhxcTFxUVFxGLXGbEVjFdCROd5LcYpXkgHNDBBAAEgACb5SlSVRp25rFe"
data "XRsQq5vUeyAAAAAPgoQAAAABQUQHECvYAAxopPpgDAADfAFAFRam0BamqLW1BEmFQAjAhoWACsKxWhQZ"
data "5Yp65jSpsnQHh5dTlpPJtho5dXSK2/k5K+Xlnsb4BV/yP7L/ANT+mfrsvXgG8/yJfi55sb+nNrg5Ng65"
data "ljeqenNjLF4+SzvmIrYhMpkYFArQ0BRUEhybAReJSKk5VF4TbacRGM4PK6iojy+S9Rz5c1pZtFgiLCVZ"
data "S/SNHFxMmlRBU6VExciisVyJxaSKh4xrhinDFtjjpYxaV4Z1rkzyZ6YSRkwAyCKZAIEAbcQCQHHbll5I"
data "EFc3pAIQDBfToFsyAGQNAjGgBGAAAAA4Q+ABstgDtLfA2lQxoAAX9mQAjGhBxCsP6KonRmVAWEZAE6V8"
data "GgRorF0tbBMh6PWh9AtFMV6FgI9ednIrWzmIFIqYnJ+lYxFTMWkisY19ZZ0Yaxm9qkaek+Lx8cMNZeqt"
data "cabzxz8H64xcTWEwtaY4aXohD6Z5cqpUGdTY0qbAZXstaXlOUooioUVIiqkXInGbjXGbVDxjXDHZYY21"
data "0+PBqRm0YYLs4VrUKxpzZ1nlGtjPKMdDMjqa5gACKAAAMjWIDhHHfll5FG+AHN6QAAGgAAAAA5wXQ7QP"
data "f4IBQAADALYDYK0bAWlsADA2BBvVAAAAcARkAA0ZWqEVUQEYEAfsC0AUg0ZaArBIq0fALsHIqTgCkVIJ"
data "NNMZ9ATGVUxkVjDvEBPRyptPEGmMa48M8WmKosjIQqDIVJWKKxBKatIIs3EaaVNiKUXjCkXiCsY18eO0"
data "Y411+HxrIlqvF43RJqDHHUN0cqVTVUqIzrPNrkzyYoxvZHklzqggGQyAAwA1yGcKHHbll5A19Ac3pMjA"
data "ENGW+QAFAAFo9AORR9F5gAtjQsAbFKmIQMgAhgAAYF9K9mNCl0e9wDQF9MaAgIyoAvo7CgEvBGAA/AgA"
data "QyAAHAPRwlQDxaYpxjTGAqQsrweiyEZ62vGFo8ewaYtMUY9tJFFAQCAqqQtAikqwkVNJSaBaKxRWClIv"
data "HHksZtt48baDTw4Wuzx46iPFhqNm5HK0ABpkJqk1BNZZNazyZoxyRWmSK5VS+F9AQAAQBkI1yVUMocd+"
data "WXkAUOT0g/6I6AKmVADQgAwQvYAAgOlaCAQDZwQjg0YAUyvEAaA2BQNCjYAhstgZUyEI6BtQhB9KcUD1"
data "oGQCnouzAAfBAGjIb+gaonasQa4NMYzwa4Kh2IrXTPOCIVpMi4KvCNIjGrxoKh6KXaoqA7BFa4BlYmxr"
data "YzqKm8JPKpQPoqZScirwjq8ODLw4bdnjx01zGOqvGaiiNtzAAAJqiqCKjJpWdSjLNnWmbOuVVNI6GQgA"
data "gBAGoKhxJy6d+WK8qg72Tk9QMjAEZAcKj+gBkAAo0BsAX0yAdnC0YgFCcrqAdy4Z3yzeiyrny7B0zyS3"
data "hUzcOW51S/myl6tXFd/ts9uTx+bf6reZf/YNNltGz2iqCdltRWy9i5AYqWaG9JKhi9jbPkwxfsdyZc0w"
data "xp7F7aRsbDF28CZI54P9ouNN8HMuWY2GN8cttcc3Js5ld8VdTy75meWrHHj5MoueW3na6nltoRjfJbS9"
data "7vtNXy6PaCeSOf2on7NXy6v5Yc8v7cu+DlNPMdc8rTHybcWNbY2rrN5dFrHLLkss9Rlc91GcXcuTnKMZ"
data "tc4BSsMdljNujxYBa08WOm8TjNRUdI5VQI1QGQAyoICqKuoyZoyzZVtkyrnVRSVU1gAAAAhVgD2Ru/LF"
data "eYAbk9RGB0AI+wBH8A2BUAIHoCACo0evwFBAB+hCReVVNBnkj1XRrXSjPLGMvJ4+ZZt064Tlj8UcVl3u"
data "74aYeXKTlpnhWdwknYutsfLLzKuZy/XLJNcdf0qbk7FdW4crDDybi5lN9oNAmdDYpgCTnYD4XUFnI2KB"
data "P2Y18QAA1wBgaAGP6LRikc7/AGZfQV8PEpF4wFTkuqfE2QmmINHAPRwaVjjoKcVvSbwjdoxaq5bEhRcg"
data "isVpjTx47VGnix26cJpnhjI021Ix1V7VGcq5W2FbNOzAzTswMgVAVFVU1KM8mWTXJnk5dKgqdJkICkgA"
data "AsBQQduWK84GNOb1EYoAaHYADYFIDIGgIAPgD6AFBSotICtIaHwROUGv0ZKBNVBYIzym0ZY6bWJs2quf"
data "LEdtcsUeskoqMZyrV3saVBTx8mpqruU7ZXHZSWCtp/amMvSv5NAvZ91MzlVxrtFGjIRBQENQFYLSuQGP"
data "iLkcyFWcidjaDSK0zmXKpkpVdiFtWOOVvEMRUn05jyvDxZWczhtPDqLjOssMWkwVjjrpdnBjNrnznDNt"
data "mz0iFIvGFIvGCrxjfx4s/Hi3nAzareoUu2eWe6eNalYraVUZY1cq6jTY2mU9qij2jZ7UVsqWxtAUqLU2"
data "oJyZ1pUZMdKzJVhVgTSMkAAFCAoduWK88AOb1AjAENmQGQAAQGgAAApAKFSOkIVv6A7AAlAEgy7UBWKA"
data "jPKM9flvYjLEVlYWtfWlmkdq0ZCcHKBWfgrF6mx2KjSpLJ9NUgI3VTdGlQC3YPZfr9T6gntF3PrX0+/C"
data "9f0DH2/KpV3x/ovUUb5XOUzHleMA5wcGrV4YiKww9nX4sNc/GXjw1XVhxGozV4yFb3Fa3NllN7GS1yMu"
data "jx6GXTNGGUTpdSgnTXCJxjfx46gLwmony564i88vTFy5Xd3UtYq98qxy5ZCWsajpmS5XLM7GmPkanQ6J"
data "T2xmapk3KjXZ7Zex+zWjTZbRsbNF7TaW07ZtDtTaLS2xapppltBNiaulYgmkdCxCSdJ25YrhoMnN6hvg"
data "AAC0dpAKAKAAMAVMqALZlewBUD6IKCOACMAQnB6GlCo5PsbAqVm1WAGdx55T66a2JymxWOU7T9bWM7Fa"
data "G1ROvycA/wCjLo5QM5ClVsFQa5KVWudiixWOG+U3pp41BfHJ2z8njk5+Om3etl5cJceBHL6qxn1WMaeP"
data "maop+PCWqvj1OEy2aby75GR47xGzHDW9NZVQ8Mr0eymtqnKJTnRZKTURnlEyKsPDHlA8MG2tTkYxPky+"
data "FZtZ55e1R8Voac6yjQVoaBIPQ0gcyVM+UaANpkcyYbOZNeht7H7MZkra+hp7FtOwmitkQQUVGwA2QAAr"
data "AFgmkqzadO3LFcH0A3N6SAvAAEYAgeiAAQtAewR7AiMgH9gEIDKHKAAE6AQHoAQH0wLZgACsPXIFRYzy"
data "mm1ibNqrLUT11Gvqm4ip3+ThWcnOBTh7t4KCX9qLnSkKl4A7VY3Sb+jnArT26jTK3XbCdq9rrQlgwu7R"
data "hlzd1MuqJYo2tlx76rTx5xz2tPHnrsMbTcz4nbbGVjjnNyt8fJBkdXlWKd3K8tJOBiipyUmoiZN1rjiW"
data "GLTqEiWpyupwyVlvZLeWNIHo5GPInQ0vR+qeVZ+pev4bTEeqeRh60XFvcE3FMGJabXFNxMECK9SsQG1d"
data "p0NgobIwOUEFD2QFAgDWAFgDtyxXnQf2A5vSCvACAG9j4FCoMgIGAIGQAj2QgKmSha0co5KoKhp6h7Ay"
data "BgBAAAAAHojFIqogTdlceF6GhWNxLLj42sRcRdZftR3EaVoSql4ToAudqRL9VAOC2jZ/tQtDXBzk5BC0"
data "qcA4K0xu42wm6ywnPTp8WAxa0wi/gk1C+jmZa3TVjjyGqxxLJetRNdJHO1lYSqU7XGBpUgkVIzYo0chy"
data "KkTFToaXIejFRori00WjBlcSuLaxNjODC4p02sTYl5NZ6LS7C0xYJ0FaJFA0DiBFpY0ojRL0PVYJCpBp"
data "1lZeYR6DD0AtmVADQgACnSAgZACEFAgNCCACiKDQAQIcGWvyBjkaEoAyEA/0BoAYIAYAFMAAWho4YI9U"
data "3FpoaFlY6GuGtxlpXEalZ60e1elL1F0HvgtK0AMet0rHC1UEm14YW3UVh42/jw18EvR+LxadExmMTjqR"
data "SudujY1yX1UEEjXCJxjTqN8xjqlUZKtZ5V0kcrU28lCtPGriauLkTiuM2NQ5FaEhxloSGNHoC0NGATor"
data "F6TYCLEWNLE2JgzsTppYmxmwQDDFilotKJhSMDYGCMANGI3KPKIy/Q7AA7AIAAQo0dBI0ZUAAQAjF5AU"
data "j0Qg2Pgh2AQFLYGCP/agAEqBmQAx8IdAOzOCikYAA/hADAAHotGEBJwcxOQ4ppeh+kMQNExi5BDgmrxk"
data "aRni0xVFRQgqoIvGJkaYRYlXhFUTgq6RytTWWbTJllW4xWd7ViheMarMa4riMWkYrpFRUKKjLQMBAAyA"
data "JsUVBNTVVNVEXtNVUZVMEmQZsUAw41pJVRIENmQKlVGapVg8vQUW1dkg7B0oQPRfQGh9MoBCnQCfhKLQ"
data "AjIQFT38FAjtIAAAoIZGBU5NAACMICQxABgjAC/2CAwBvkAC2YHDKHAVFRMUB6Ah6A4qFJwqRUVj20xm"
data "kYzlpAVBoHFQ8Y2wjPGNseI1yx1TTVJrpGKzyZZNcmWbcc6heCGmK1IvFpEYtIxXSKiomKZaMyNAAACK"
data "nSqoiptVUVURai1WTOqmnKe0bPbFiyr2EHtx6jcMqWxtlQC2NgY2WxVg4BpWi0OydCxRAkH9F0oQGuDA"
data "iqvpUE80UyAgZUQvoGjAoDKgCP4AIx0IABgCFhkoJ2ZaEAHaRoGNAbAUCchQaMlSANK0IqQQ5NxUgk4V"
data "AKYq9RIvQJkVMTitKgk5UINAqKkTF4wReMaJkN0jnaCp1NajNZ5MsmmbLK8ukc7Uxrgzx5a4lI0xXEYr"
data "jnXSLiomKZaMAAAABVNVU1URkiqqMmkZ5VFVki9qwDhGzVgADj06QVNVU1hU7GxSBXsNpK1uRHB4/JZW"
data "8u44608fkYeh0aBY5yxWtwE6Gj0NARaVoKEV7Psa5BOi0sqCKSqnQADRiJMaFgEDIAAAMhsAD/0QAAGA"
data "kA6GgEB6CgMjAHBNU/gKiomKgivqomKii4cKKghyKKKgHIYMQTtrjEYzlrJwsS0wCdI500VW01pGWbLL"
data "trkyybjnTxa4s8Y0xSrGmK4iLjFdIqKKGypgAAKACamqqaqIyZ5VpkyyrcZrPJH1WXaVYMQjZrUMCBx6"
data "dIKmqTXNSqVXpNoBNMq3ErzqnemljO7Yehrhk1xtc+OWrG2N2DXco0hUoHoaOcjQJ0FFrhROgrRaBFhW"
data "L0VBIAAgZaAiVohC0DIDIAUAABIexshDAAGC2agMqcARUJUEVFRMqgVOTiYqdqLiomK2IpUiJksFwyis"
data "ZyqLwiyxgrUYoBG1GRUZKqMq1GazzZrzrP63HOrxa4s8WuKVrlcXERcYrpFQyhsqYAAFTKgVRVVNWIjJ"
data "nkvJnm3GKyyvKRkUaZVKaVMdNQbOEccem4CplXNpNSqxNgEVMq1Ecmmefjl6b62PXhHocd3jlpr48tn5"
data "PHvlnjbLpFdEVOGeF203sDl0uXfaIYi9bLQx3FzkGehY0sRYonRWKAM9FV2JAiVS1yBErRUC0StFoCJR"
data "UCBjQF9OAgMACAyhqA4RwDVP6TFQDi4mGIo/pHAXjeFM4uVRcXGeNaQRcm2uERjGuPEWM1XxNOprTABG"
data "0yKzyi6jKtRKyzRFZdlI6ObTFpijFpIxW4uLiMVxitnDAiKYAAEZUE1NVUZNRmoyY51rkxzbjFZZdgUR"
data "pDhykc6c+moYhHHLpuGVMq5NFU1VTQTSOlY1EY6PXBw5Ed0XFz+Xxb3ZxXWWWO4Dk8efcbS7ZeTC4Zbk"
data "4VhkjTaKicar6IchwHoDh+spyNMMdqjC+OzpFxd88e4y8nhm1xPTk0mts/HWdiKnRaUVFTYWuV6TUC/Z"
data "KFmgSVh6PQIoVYWlCHZ60QAGNAID0NCDQP4JAOHooYKhpip0A2qVOjii4qJn6XBFYxphNoxjbDHSpWmM"
data "WmGrFMqNla1GaUMjbZKoyXWeVajNZ0Y9lTxbYa4rxRg0jnXSKi4mLjLRmRooAAAqZUE1FVUZNRlGTHNr"
data "kwzrpGKzogEVk4ohtzrcUIRuPTcMUQObSamrqKCSqiqjOHIIqDsJBYcVFRhnhMo5bLhk9C4sPN4/qVZU"
data "42Vc6c+O5W+N4RppDhYrkEVI28eO0Yzbo8ePDUjHVOTUZeTlvZwx8k4OmGFv5RlhL0rJO6zKsuMssbLy"
data "Vjo3jlxSy8W+Yrc6c2isa3CxNg0z0Ncr1oqgjQsVoaBGtlpehoEDStAE6MwBDRz/AMmCdHo9GBH/AGNG"
data "oDKGIZwoqQFReMTi0xii/HOW0Zzg/ZXO1pKe0SmRlRUg3GaDINxBWeTSs824zWdVgi81eDVYjXFcRi0j"
data "nXSLiomKjLRmRooAABNOlQTUZLrPJqM1nl0wzbZsM66RzrO9nCpxqpFQyhuXTcOGRuPTpDAhuapqaqpo"
data "JpHSqiNL0lUV2ORWiitCHE5YSxRwHD5vFcbsvHfjuz8czx05MsL48tfGa1KudtsGWDfCLCtfHi6McdRl"
data "4o6J06Ry6Rkxzb5Mc4lZc2fbOtvJGNclI5lZ1SAjWWZTksvFxuJl01wy4XWpXPcNJ07tTLuM8vBLzirc"
data "6cmi02y8dnc0m4istE0sL1FRoaWViCdDStDQJ0NK0NAkz0NARjR6Aj0NHFBjPyuQpGmOFEGOLSTQk1E5"
data "5fIrFq7nPglYy7aY1GWsqtohxYigQdIzThpNuMis8qus83SMVH1phyzjTBaka4riI0jnXWKioUVGWgZG"
data "gAABUqaaqJrPJpWeTUSss6wzbZ1jny6RyqDhHFpFGUNx6dIIpKo5dNw4BA5qVTVUqCKDJREVCVB2VFRM"
data "OKKhwQCHE+TxzPHVUqA5ccLjeW+EPPCU8JyQrfxxsjxxddHKoyZZtqyziUc/kY5OjyMM3GqgAkRUaY1k"
data "0xUbYqlZ4rixV99pvgxy64ONMa6Q1zZf4uU65ZZeHKd416MP1l7i+V9V5NwHq9TLw4X4zy/xsKnlfbzr"
data "iPV3X/F/FRf8Zny16jk0WnVf8fJN8GRh6jnDo/go/gTDY59HquieCLnhkXD1HLMbWmHitdM8eM+HxF8s"
data "3tlj4tHdYrtZ5rjNqMst8Ip0qxUKVpiy+rxQa4riMVNQUCDpGacMg6RksqzyXWeVbjFKNcWeLXEpGkXE"
data "Yrxc66RcUmKRowRoAAASaqoqxE1nk0rPJqM1jneWOXbXNjk6xzpfTIykOKiYbj06RRphuPTcUCNhRU1S"
data "QTSOwlEqgA7KnawFDhwAQHOwAOqw7AWJXTh0qgNuaKzyASjDydMMuwHG/VRRewEQLwAUa49KAFXF4gOs"
data "RpFQBqBkAqEQAFU0BlU1IDIIYDQCoAFWeYAMr2VAY6E1ePwBka4qgDUDhgOkZoADpGU1nl0A3GKMW2IB"
data "VjSdLgDnW1RQDLRgAAAATU0BYlRWeQDUZrDNlQHWORUToAqxUMBx6dIZgOPTcM4AwoKgAmpoCj//2Z=="
Re: create program to create bitmap
Great Joshy, works here on Mint 18 64bit.