Image Conversion

New to FreeBASIC? Post your questions here.
Post Reply
TurtleProgrammer
Posts: 37
Joined: Jan 26, 2017 7:54

Image Conversion

Post by TurtleProgrammer »

I used an online Hexadecimal converter on an image. To save space here is the first few lines of the output:

data 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01
data 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x0F, 0x4C, 0x61, 0x76, 0x63, 0x35, 0x36, 0x2E, 0x30
data 0x2E, 0x31, 0x30, 0x31, 0x00, 0xFF, 0xDB, 0x00, 0x43, 0x00, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04
data 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
data 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x08, 0x08, 0x08, 0x07, 0x07, 0x07, 0x06, 0x06, 0x07, 0x07
data 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x09, 0x08, 0x08, 0x08, 0x08, 0x09, 0x09, 0x0A, 0x0A, 0x0A
data 0x0C, 0x0C, 0x0B, 0x0B, 0x0E, 0x0E, 0x0E, 0x11, 0x11, 0x14, 0xFF, 0xC4, 0x01, 0xA2, 0x00, 0x00
data 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
data 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x01, 0x00, 0x03, 0x01, 0x01
data 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03
data 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04
data 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05
data 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1
data 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A
data 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38
data 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58
data 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78
data 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97
data 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5
data 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3
data 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9
data 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0x11, 0x00, 0x02, 0x01, 0x02
data 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 0x02, 0x03
data 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81
data 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, 0x72, 0xD1
data 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, 0x29, 0x2A
data 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54
data 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74
data 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92
data 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9
data 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7
data 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, 0xE3, 0xE4, 0xE5
data 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFF, 0xC0
data 0x00, 0x11, 0x08, 0x02, 0xD0, 0x05, 0x00, 0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x00, 0x03, 0x11
data 0x00, 0xFF, 0xDA, 0x00, 0x0C, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3F, 0x00, 0xF7
data 0xFA, 0x28, 0xA2, 0x98, 0x05, 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, 0x40, 0x19, 0xBA, 0xEF, 0x85
data 0x34, 0x5F, 0x10, 0xA8, 0xFB, 0x6D, 0xBF, 0xEF, 0x47, 0xDC, 0xB8, 0x88, 0xF9, 0x77, 0x11, 0xFA
data 0x6D, 0x95, 0x7E, 0x71, 0x8F, 0x63, 0x59, 0xAB, 0xA6, 0xF8, 0xC3, 0xC3, 0x40, 0x7D, 0x8A, 0xED
data 0xB5, 0xFB, 0x34, 0x0A, 0x3E, 0xCD, 0x74, 0xC5, 0x6F, 0x15, 0x46, 0x72, 0x12, 0x52, 0x5B, 0xCC
data 0xC0, 0xC6, 0x37, 0x30, 0x26, 0xBA, 0x4A, 0x29, 0x31, 0xD8, 0xC7, 0xD2, 0xBC, 0x5F, 0xA5, 0x6A
data 0x4F, 0xE4, 0x39, 0x92, 0xC6, 0xE9, 0x78, 0x7B, 0x5B, 0xA5, 0xF2, 0xE4, 0x53, 0xE9, 0x9F, 0xBA
data 0xDF, 0x81, 0xAD, 0x47, 0x86, 0x39, 0xD0, 0xA4, 0x88, 0x1D, 0x0F, 0x55, 0x61, 0x90, 0x6A, 0xAE
data 0xB1, 0xE1, 0xDD, 0x23, 0x5D, 0x8B, 0xCB, 0xBE, 0xB5, 0x8E, 0x43, 0xFC, 0x32, 0x81, 0xB6, 0x64
data 0x3E, 0xA9, 0x22, 0xE1, 0x81, 0x1F, 0x5A, 0xC8, 0xFB, 0x07, 0x8B, 0xBC, 0x2E, 0x73, 0x61, 0x29
data 0xD7, 0x2C, 0x47, 0xFC, 0xBB, 0x4E, 0xD8, 0xBA, 0x8C, 0x7F, 0xB1, 0x23, 0x67, 0x7F, 0x7F, 0xBC
data 0xC2, 0xA2, 0xC2, 0x31, 0xBC, 0x6F, 0xFB, 0x3D, 0x78, 0x1B, 0xC6, 0x1E, 0x64, 0xC9, 0x6A, 0xBA
data 0x65, 0xDB, 0x64, 0xFD, 0xA2, 0xD5, 0x76, 0x31, 0x27, 0xB1, 0x00, 0x81, 0x8C, 0xF5, 0xF5, 0xAF
data 0x22, 0xF1, 0x8F, 0xEC, 0xF1, 0xE3, 0xAF, 0x08, 0x48, 0x6E, 0x74, 0xFD, 0xBA, 0xAC, 0x08, 0x49
data 0x47, 0xB7, 0x2C, 0x2E, 0x40, 0xCE, 0x78, 0x45, 0xE3, 0xD3, 0x23, 0x78, 0x1D, 0xEB, 0xE8, 0x3D
data 0x1B, 0xC6, 0x9A, 0x4E, 0xAE, 0xE6, 0x06, 0x32, 0x69, 0xF7, 0x6A, 0x71, 0x25, 0x95, 0xEA, 0xF9
data 0x33, 0x27, 0xD3, 0x3F, 0x23, 0x0C, 0xF7, 0x0D, 0x5A, 0xE5, 0x55, 0xC1, 0x56, 0x00, 0x83, 0xD4
data 0x1E, 0xF5, 0x0E, 0x29, 0x85, 0x8F, 0x97, 0x3C, 0x1F, 0xF1, 0xA3, 0xC7, 0x7E, 0x05, 0x9D, 0x6D
data 0xA7, 0x96, 0xE6, 0x78, 0x10, 0xFC, 0xD6, 0x77, 0xA1, 0xB2, 0x31, 0xD7, 0x1B, 0xC6, 0x7A, 0x7E
data 0x55, 0xEB, 0xDE, 0x09, 0xFD, 0xA3, 0xBC, 0x1F, 0xE2, 0x4F, 0x26, 0xDF, 0x51, 0x63, 0xA4, 0xDD
data 0xB8, 0x1B, 0x84, 0xBC, 0x41, 0x93, 0xE8, 0xF9, 0x3D, 0x7B, 0x64, 0xD7, 0x47, 0xE2, 0xCF, 0x85
data 0xBE, 0x0C, 0xF1, 0x8C, 0x4C, 0xBA, 0x8E, 0x9B, 0x07, 0x99, 0x83, 0xB6, 0x78, 0xD1, 0x52, 0x65
data 0xCF, 0xA3, 0x2E, 0x0F, 0x15, 0xE4, 0x7E, 0x36, 0xFD, 0x96, 0x35, 0xBD, 0x28, 0x3D, 0xC7, 0x85
data 0xAF, 0xBE, 0xD9, 0x02, 0xE4, 0x8B, 0x5B, 0x8C, 0x89, 0x40, 0x1D, 0x02, 0xBE, 0xE3, 0xFA, 0xD1

My question(s) is/are:

1. How do I read each value and convert it to a color, if that is possible, considering these values originally came from an image?
or
2. Do I need to convert the above values to longer values, say more than three characters to a value?

I am working on an experiment to see if I can load an image's values into DATA statements and for each value have the color printed to the screen.
MrSwiss
Posts: 3910
Joined: Jun 02, 2013 9:27
Location: Switzerland

Re: Image Conversion

Post by MrSwiss »

The whole HEX stuff is useless whithout you, providing decent information on:
the original picture (bit-depth of color, sizes etc.), you have converted.

Then, whenever something should be usable by others, put it in-between code tags!
Just a part of the info (the incomplete HEX, I assume), is equally useless!

Without those informations, you are unlikely to get a decent answer ...
(everybody simply guessing ...)
dodicat
Posts: 7983
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: Image Conversion

Post by dodicat »

Definitely a worm of some sort.

Code: Select all


data &hFF, &hD8, &hFF, &hE0, &h00, &h10, &h4A, &h46, &h49, &h46, &h00, &h01, &h02, &h00, &h00, &h01 
data &h00, &h01, &h00, &h00, &hFF, &hFE, &h00, &h0F, &h4C, &h61, &h76, &h63, &h35, &h36, &h2E, &h30 
data &h2E, &h31, &h30, &h31, &h00, &hFF, &hDB, &h00, &h43, &h00, &h08, &h04, &h04, &h04, &h04, &h04 
data &h05, &h05, &h05, &h05, &h05, &h05, &h06, &h06, &h06, &h06, &h06, &h06, &h06, &h06, &h06, &h06 
data &h06, &h06, &h06, &h07, &h07, &h07, &h08, &h08, &h08, &h07, &h07, &h07, &h06, &h06, &h07, &h07 
data &h08, &h08, &h08, &h08, &h09, &h09, &h09, &h08, &h08, &h08, &h08, &h09, &h09, &h0A, &h0A, &h0A 
data &h0C, &h0C, &h0B, &h0B, &h0E, &h0E, &h0E, &h11, &h11, &h14, &hFF, &hC4, &h01, &hA2, &h00, &h00 
data &h01, &h05, &h01, &h01, &h01, &h01, &h01, &h01, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00 
data &h01, &h02, &h03, &h04, &h05, &h06, &h07, &h08, &h09, &h0A, &h0B, &h01, &h00, &h03, &h01, &h01 
data &h01, &h01, &h01, &h01, &h01, &h01, &h01, &h00, &h00, &h00, &h00, &h00, &h00, &h01, &h02, &h03 
data &h04, &h05, &h06, &h07, &h08, &h09, &h0A, &h0B, &h10, &h00, &h02, &h01, &h03, &h03, &h02, &h04 
data &h03, &h05, &h05, &h04, &h04, &h00, &h00, &h01, &h7D, &h01, &h02, &h03, &h00, &h04, &h11, &h05 
data &h12, &h21, &h31, &h41, &h06, &h13, &h51, &h61, &h07, &h22, &h71, &h14, &h32, &h81, &h91, &hA1 
data &h08, &h23, &h42, &hB1, &hC1, &h15, &h52, &hD1, &hF0, &h24, &h33, &h62, &h72, &h82, &h09, &h0A 
data &h16, &h17, &h18, &h19, &h1A, &h25, &h26, &h27, &h28, &h29, &h2A, &h34, &h35, &h36, &h37, &h38 
data &h39, &h3A, &h43, &h44, &h45, &h46, &h47, &h48, &h49, &h4A, &h53, &h54, &h55, &h56, &h57, &h58 
data &h59, &h5A, &h63, &h64, &h65, &h66, &h67, &h68, &h69, &h6A, &h73, &h74, &h75, &h76, &h77, &h78 
data &h79, &h7A, &h83, &h84, &h85, &h86, &h87, &h88, &h89, &h8A, &h92, &h93, &h94, &h95, &h96, &h97 
data &h98, &h99, &h9A, &hA2, &hA3, &hA4, &hA5, &hA6, &hA7, &hA8, &hA9, &hAA, &hB2, &hB3, &hB4, &hB5 
data &hB6, &hB7, &hB8, &hB9, &hBA, &hC2, &hC3, &hC4, &hC5, &hC6, &hC7, &hC8, &hC9, &hCA, &hD2, &hD3 
data &hD4, &hD5, &hD6, &hD7, &hD8, &hD9, &hDA, &hE1, &hE2, &hE3, &hE4, &hE5, &hE6, &hE7, &hE8, &hE9 
data &hEA, &hF1, &hF2, &hF3, &hF4, &hF5, &hF6, &hF7, &hF8, &hF9, &hFA, &h11, &h00, &h02, &h01, &h02 
data &h04, &h04, &h03, &h04, &h07, &h05, &h04, &h04, &h00, &h01, &h02, &h77, &h00, &h01, &h02, &h03 
data &h11, &h04, &h05, &h21, &h31, &h06, &h12, &h41, &h51, &h07, &h61, &h71, &h13, &h22, &h32, &h81 
data &h08, &h14, &h42, &h91, &hA1, &hB1, &hC1, &h09, &h23, &h33, &h52, &hF0, &h15, &h62, &h72, &hD1 
data &h0A, &h16, &h24, &h34, &hE1, &h25, &hF1, &h17, &h18, &h19, &h1A, &h26, &h27, &h28, &h29, &h2A 
data &h35, &h36, &h37, &h38, &h39, &h3A, &h43, &h44, &h45, &h46, &h47, &h48, &h49, &h4A, &h53, &h54 
data &h55, &h56, &h57, &h58, &h59, &h5A, &h63, &h64, &h65, &h66, &h67, &h68, &h69, &h6A, &h73, &h74 
data &h75, &h76, &h77, &h78, &h79, &h7A, &h82, &h83, &h84, &h85, &h86, &h87, &h88, &h89, &h8A, &h92 
data &h93, &h94, &h95, &h96, &h97, &h98, &h99, &h9A, &hA2, &hA3, &hA4, &hA5, &hA6, &hA7, &hA8, &hA9 
data &hAA, &hB2, &hB3, &hB4, &hB5, &hB6, &hB7, &hB8, &hB9, &hBA, &hC2, &hC3, &hC4, &hC5, &hC6, &hC7 
data &hC8, &hC9, &hCA, &hD2, &hD3, &hD4, &hD5, &hD6, &hD7, &hD8, &hD9, &hDA, &hE2, &hE3, &hE4, &hE5 
data &hE6, &hE7, &hE8, &hE9, &hEA, &hF2, &hF3, &hF4, &hF5, &hF6, &hF7, &hF8, &hF9, &hFA, &hFF, &hC0 
data &h00, &h11, &h08, &h02, &hD0, &h05, &h00, &h03, &h01, &h22, &h00, &h02, &h11, &h00, &h03, &h11 
data &h00, &hFF, &hDA, &h00, &h0C, &h03, &h01, &h00, &h02, &h11, &h03, &h11, &h00, &h3F, &h00, &hF7 
data &hFA, &h28, &hA2, &h98, &h05, &h14, &h51, &h40, &h05, &h14, &h51, &h40, &h19, &hBA, &hEF, &h85 
data &h34, &h5F, &h10, &hA8, &hFB, &h6D, &hBF, &hEF, &h47, &hDC, &hB8, &h88, &hF9, &h77, &h11, &hFA 
data &h6D, &h95, &h7E, &h71, &h8F, &h63, &h59, &hAB, &hA6, &hF8, &hC3, &hC3, &h40, &h7D, &h8A, &hED 
data &hB5, &hFB, &h34, &h0A, &h3E, &hCD, &h74, &hC5, &h6F, &h15, &h46, &h72, &h12, &h52, &h5B, &hCC 
data &hC0, &hC6, &h37, &h30, &h26, &hBA, &h4A, &h29, &h31, &hD8, &hC7, &hD2, &hBC, &h5F, &hA5, &h6A 
data &h4F, &hE4, &h39, &h92, &hC6, &hE9, &h78, &h7B, &h5B, &hA5, &hF2, &hE4, &h53, &hE9, &h9F, &hBA 
data &hDF, &h81, &hAD, &h47, &h86, &h39, &hD0, &hA4, &h88, &h1D, &h0F, &h55, &h61, &h90, &h6A, &hAE 
data &hB1, &hE1, &hDD, &h23, &h5D, &h8B, &hCB, &hBE, &hB5, &h8E, &h43, &hFC, &h32, &h81, &hB6, &h64 
data &h3E, &hA9, &h22, &hE1, &h81, &h1F, &h5A, &hC8, &hFB, &h07, &h8B, &hBC, &h2E, &h73, &h61, &h29 
data &hD7, &h2C, &h47, &hFC, &hBB, &h4E, &hD8, &hBA, &h8C, &h7F, &hB1, &h23, &h67, &h7F, &h7F, &hBC 
data &hC2, &hA2, &hC2, &h31, &hBC, &h6F, &hFB, &h3D, &h78, &h1B, &hC6, &h1E, &h64, &hC9, &h6A, &hBA 
data &h65, &hDB, &h64, &hFD, &hA2, &hD5, &h76, &h31, &h27, &hB1, &h00, &h81, &h8C, &hF5, &hF5, &hAF 
data &h22, &hF1, &h8F, &hEC, &hF1, &hE3, &hAF, &h08, &h48, &h6E, &h74, &hFD, &hBA, &hAC, &h08, &h49 
data &h47, &hB7, &h2C, &h2E, &h40, &hCE, &h78, &h45, &hE3, &hD3, &h23, &h78, &h1D, &hEB, &hE8, &h3D 
data &h1B, &hC6, &h9A, &h4E, &hAE, &hE6, &h06, &h32, &h69, &hF7, &h6A, &h71, &h25, &h95, &hEA, &hF9 
data &h33, &h27, &hD3, &h3F, &h23, &h0C, &hF7, &h0D, &h5A, &hE5, &h55, &hC1, &h56, &h00, &h83, &hD4 
data &h1E, &hF5, &h0E, &h29, &h85, &h8F, &h97, &h3C, &h1F, &hF1, &hA3, &hC7, &h7E, &h05, &h9D, &h6D 
data &hA7, &h96, &hE6, &h78, &h10, &hFC, &hD6, &h77, &hA1, &hB2, &h31, &hD7, &h1B, &hC6, &h7A, &h7E 
data &h55, &hEB, &hDE, &h09, &hFD, &hA3, &hBC, &h1F, &hE2, &h4F, &h26, &hDF, &h51, &h63, &hA4, &hDD 
data &hB8, &h1B, &h84, &hBC, &h41, &h93, &hE8, &hF9, &h3D, &h7B, &h64, &hD7, &h47, &hE2, &hCF, &h85 
data &hBE, &h0C, &hF1, &h8C, &h4C, &hBA, &h8E, &h9B, &h07, &h99, &h83, &hB6, &h78, &hD1, &h52, &h65 
data &hCF, &hA3, &h2E, &h0F, &h15, &hE4, &h7E, &h36, &hFD, &h96, &h35, &hBD, &h28, &h3D, &hC7, &h85 
data &hAF, &hBE, &hD9, &h02, &hE4, &h8B, &h5B, &h8C, &h89, &h40, &h1D, &h02, &hBE, &hE3, &hFA, &hD1 
data 1000000
screen 20
redim as ulong colours(0)
dim as ulong count
dim as ulong t
do
    count+=1
    read t
    if t=1000000 then exit do
    redim preserve colours(1 to count)
    colours(count)=t
    circle(count,300+50*sin(count/50)),5+count/10,t
loop
print count

sleep

 
jj2007
Posts: 2326
Joined: Oct 23, 2016 15:28
Location: Roma, Italia
Contact:

Re: Image Conversion

Post by jj2007 »

dodicat wrote:Definitely a worm of some sort.
Yeah, a worm with 929 legs. Odd.
dodicat
Posts: 7983
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: Image Conversion

Post by dodicat »

Nevertheless a happy one.

Code: Select all

 

Data &hFF, &hD8, &hFF, &hE0, &h00, &h10, &h4A, &h46, &h49, &h46, &h00, &h01, &h02, &h00, &h00, &h01 
Data &h00, &h01, &h00, &h00, &hFF, &hFE, &h00, &h0F, &h4C, &h61, &h76, &h63, &h35, &h36, &h2E, &h30 
Data &h2E, &h31, &h30, &h31, &h00, &hFF, &hDB, &h00, &h43, &h00, &h08, &h04, &h04, &h04, &h04, &h04 
Data &h05, &h05, &h05, &h05, &h05, &h05, &h06, &h06, &h06, &h06, &h06, &h06, &h06, &h06, &h06, &h06 
Data &h06, &h06, &h06, &h07, &h07, &h07, &h08, &h08, &h08, &h07, &h07, &h07, &h06, &h06, &h07, &h07 
Data &h08, &h08, &h08, &h08, &h09, &h09, &h09, &h08, &h08, &h08, &h08, &h09, &h09, &h0A, &h0A, &h0A 
Data &h0C, &h0C, &h0B, &h0B, &h0E, &h0E, &h0E, &h11, &h11, &h14, &hFF, &hC4, &h01, &hA2, &h00, &h00 
Data &h01, &h05, &h01, &h01, &h01, &h01, &h01, &h01, &h00, &h00, &h00, &h00, &h00, &h00, &h00, &h00 
Data &h01, &h02, &h03, &h04, &h05, &h06, &h07, &h08, &h09, &h0A, &h0B, &h01, &h00, &h03, &h01, &h01 
Data &h01, &h01, &h01, &h01, &h01, &h01, &h01, &h00, &h00, &h00, &h00, &h00, &h00, &h01, &h02, &h03 
Data &h04, &h05, &h06, &h07, &h08, &h09, &h0A, &h0B, &h10, &h00, &h02, &h01, &h03, &h03, &h02, &h04 
Data &h03, &h05, &h05, &h04, &h04, &h00, &h00, &h01, &h7D, &h01, &h02, &h03, &h00, &h04, &h11, &h05 
Data &h12, &h21, &h31, &h41, &h06, &h13, &h51, &h61, &h07, &h22, &h71, &h14, &h32, &h81, &h91, &hA1 
Data &h08, &h23, &h42, &hB1, &hC1, &h15, &h52, &hD1, &hF0, &h24, &h33, &h62, &h72, &h82, &h09, &h0A 
Data &h16, &h17, &h18, &h19, &h1A, &h25, &h26, &h27, &h28, &h29, &h2A, &h34, &h35, &h36, &h37, &h38 
Data &h39, &h3A, &h43, &h44, &h45, &h46, &h47, &h48, &h49, &h4A, &h53, &h54, &h55, &h56, &h57, &h58 
Data &h59, &h5A, &h63, &h64, &h65, &h66, &h67, &h68, &h69, &h6A, &h73, &h74, &h75, &h76, &h77, &h78 
Data &h79, &h7A, &h83, &h84, &h85, &h86, &h87, &h88, &h89, &h8A, &h92, &h93, &h94, &h95, &h96, &h97 
Data &h98, &h99, &h9A, &hA2, &hA3, &hA4, &hA5, &hA6, &hA7, &hA8, &hA9, &hAA, &hB2, &hB3, &hB4, &hB5 
Data &hB6, &hB7, &hB8, &hB9, &hBA, &hC2, &hC3, &hC4, &hC5, &hC6, &hC7, &hC8, &hC9, &hCA, &hD2, &hD3 
Data &hD4, &hD5, &hD6, &hD7, &hD8, &hD9, &hDA, &hE1, &hE2, &hE3, &hE4, &hE5, &hE6, &hE7, &hE8, &hE9 
Data &hEA, &hF1, &hF2, &hF3, &hF4, &hF5, &hF6, &hF7, &hF8, &hF9, &hFA, &h11, &h00, &h02, &h01, &h02 
Data &h04, &h04, &h03, &h04, &h07, &h05, &h04, &h04, &h00, &h01, &h02, &h77, &h00, &h01, &h02, &h03 
Data &h11, &h04, &h05, &h21, &h31, &h06, &h12, &h41, &h51, &h07, &h61, &h71, &h13, &h22, &h32, &h81 
Data &h08, &h14, &h42, &h91, &hA1, &hB1, &hC1, &h09, &h23, &h33, &h52, &hF0, &h15, &h62, &h72, &hD1 
Data &h0A, &h16, &h24, &h34, &hE1, &h25, &hF1, &h17, &h18, &h19, &h1A, &h26, &h27, &h28, &h29, &h2A 
Data &h35, &h36, &h37, &h38, &h39, &h3A, &h43, &h44, &h45, &h46, &h47, &h48, &h49, &h4A, &h53, &h54 
Data &h55, &h56, &h57, &h58, &h59, &h5A, &h63, &h64, &h65, &h66, &h67, &h68, &h69, &h6A, &h73, &h74 
Data &h75, &h76, &h77, &h78, &h79, &h7A, &h82, &h83, &h84, &h85, &h86, &h87, &h88, &h89, &h8A, &h92 
Data &h93, &h94, &h95, &h96, &h97, &h98, &h99, &h9A, &hA2, &hA3, &hA4, &hA5, &hA6, &hA7, &hA8, &hA9 
Data &hAA, &hB2, &hB3, &hB4, &hB5, &hB6, &hB7, &hB8, &hB9, &hBA, &hC2, &hC3, &hC4, &hC5, &hC6, &hC7 
Data &hC8, &hC9, &hCA, &hD2, &hD3, &hD4, &hD5, &hD6, &hD7, &hD8, &hD9, &hDA, &hE2, &hE3, &hE4, &hE5 
Data &hE6, &hE7, &hE8, &hE9, &hEA, &hF2, &hF3, &hF4, &hF5, &hF6, &hF7, &hF8, &hF9, &hFA, &hFF, &hC0 
Data &h00, &h11, &h08, &h02, &hD0, &h05, &h00, &h03, &h01, &h22, &h00, &h02, &h11, &h00, &h03, &h11 
Data &h00, &hFF, &hDA, &h00, &h0C, &h03, &h01, &h00, &h02, &h11, &h03, &h11, &h00, &h3F, &h00, &hF7 
Data &hFA, &h28, &hA2, &h98, &h05, &h14, &h51, &h40, &h05, &h14, &h51, &h40, &h19, &hBA, &hEF, &h85 
Data &h34, &h5F, &h10, &hA8, &hFB, &h6D, &hBF, &hEF, &h47, &hDC, &hB8, &h88, &hF9, &h77, &h11, &hFA 
Data &h6D, &h95, &h7E, &h71, &h8F, &h63, &h59, &hAB, &hA6, &hF8, &hC3, &hC3, &h40, &h7D, &h8A, &hED 
Data &hB5, &hFB, &h34, &h0A, &h3E, &hCD, &h74, &hC5, &h6F, &h15, &h46, &h72, &h12, &h52, &h5B, &hCC 
Data &hC0, &hC6, &h37, &h30, &h26, &hBA, &h4A, &h29, &h31, &hD8, &hC7, &hD2, &hBC, &h5F, &hA5, &h6A 
Data &h4F, &hE4, &h39, &h92, &hC6, &hE9, &h78, &h7B, &h5B, &hA5, &hF2, &hE4, &h53, &hE9, &h9F, &hBA 
Data &hDF, &h81, &hAD, &h47, &h86, &h39, &hD0, &hA4, &h88, &h1D, &h0F, &h55, &h61, &h90, &h6A, &hAE 
Data &hB1, &hE1, &hDD, &h23, &h5D, &h8B, &hCB, &hBE, &hB5, &h8E, &h43, &hFC, &h32, &h81, &hB6, &h64 
Data &h3E, &hA9, &h22, &hE1, &h81, &h1F, &h5A, &hC8, &hFB, &h07, &h8B, &hBC, &h2E, &h73, &h61, &h29 
Data &hD7, &h2C, &h47, &hFC, &hBB, &h4E, &hD8, &hBA, &h8C, &h7F, &hB1, &h23, &h67, &h7F, &h7F, &hBC 
Data &hC2, &hA2, &hC2, &h31, &hBC, &h6F, &hFB, &h3D, &h78, &h1B, &hC6, &h1E, &h64, &hC9, &h6A, &hBA 
Data &h65, &hDB, &h64, &hFD, &hA2, &hD5, &h76, &h31, &h27, &hB1, &h00, &h81, &h8C, &hF5, &hF5, &hAF 
Data &h22, &hF1, &h8F, &hEC, &hF1, &hE3, &hAF, &h08, &h48, &h6E, &h74, &hFD, &hBA, &hAC, &h08, &h49 
Data &h47, &hB7, &h2C, &h2E, &h40, &hCE, &h78, &h45, &hE3, &hD3, &h23, &h78, &h1D, &hEB, &hE8, &h3D 
Data &h1B, &hC6, &h9A, &h4E, &hAE, &hE6, &h06, &h32, &h69, &hF7, &h6A, &h71, &h25, &h95, &hEA, &hF9 
Data &h33, &h27, &hD3, &h3F, &h23, &h0C, &hF7, &h0D, &h5A, &hE5, &h55, &hC1, &h56, &h00, &h83, &hD4 
Data &h1E, &hF5, &h0E, &h29, &h85, &h8F, &h97, &h3C, &h1F, &hF1, &hA3, &hC7, &h7E, &h05, &h9D, &h6D 
Data &hA7, &h96, &hE6, &h78, &h10, &hFC, &hD6, &h77, &hA1, &hB2, &h31, &hD7, &h1B, &hC6, &h7A, &h7E 
Data &h55, &hEB, &hDE, &h09, &hFD, &hA3, &hBC, &h1F, &hE2, &h4F, &h26, &hDF, &h51, &h63, &hA4, &hDD 
Data &hB8, &h1B, &h84, &hBC, &h41, &h93, &hE8, &hF9, &h3D, &h7B, &h64, &hD7, &h47, &hE2, &hCF, &h85 
Data &hBE, &h0C, &hF1, &h8C, &h4C, &hBA, &h8E, &h9B, &h07, &h99, &h83, &hB6, &h78, &hD1, &h52, &h65 
Data &hCF, &hA3, &h2E, &h0F, &h15, &hE4, &h7E, &h36, &hFD, &h96, &h35, &hBD, &h28, &h3D, &hC7, &h85 
Data &hAF, &hBE, &hD9, &h02, &hE4, &h8B, &h5B, &h8C, &h89, &h40, &h1D, &h02, &hBE, &hE3, &hFA, &hD1 
Data 1000000
Screen 20
Redim As Ulong colours(0)
Dim As Ulong count
Dim As Ulong t
Do
    count+=1
    Read t
    If t=1000000 Then Exit Do
    Redim Preserve colours(1 To count)
    colours(count)=t
Loop
Dim As Single d

Do
    Screenlock
    Cls
    For n As Long=1 To Ubound(colours)
        d+=.001
        Circle(n,300+(50+n/10)*Sin((n+d)/50)),5+n/10,colours(n),,,,f 
        If n=Ubound(colours) Then 
            Circle(n,300+(50+n/10)*Sin((n+d)/50)),5+n/10,4,,,,f
            Circle(n-50,-20+300+(50+n/10)*Sin((n+d)/50)),5,3,,,,f
            Circle(n+50,-20+300+(50+n/10)*Sin((n+d)/50)),5,3,,,,f
            Circle(n,+0+300+(50+n/10)*Sin((n+d)/50)),5+n/10-40,15,1+3.1,2+3.1,,f
        End If
    Next
    Screenunlock
    Sleep 2,1
Loop Until Len(Inkey)

Print count

Sleep

  
UEZ
Posts: 988
Joined: May 05, 2017 19:59
Location: Germany

Re: Image Conversion

Post by UEZ »

Here an example how I use embedded images using GDIPlus [Windows only]

Code: Select all

'Coded by UEZ / Windows only! :-)

#include "fbgfx.bi"
#Ifdef __Fb_64bit__
   #Inclib "gdiplus"
   #Include Once "win/gdiplus-c.bi"
#Else
   #Include Once "win/gdiplus.bi"
   Using gdiplus
#Endif

Declare Function Base91Decode(sString As String, Byref iBase91Len As Ulong) As Ubyte Ptr
Declare Function _GDIPlus_Startup() As Byte
Declare Sub _GDIPlus_Shutdown()
Declare Function _GDIPlus_BitmapCreateFromMemory2(aBinImage As Ubyte Ptr, iLen As Ulong, bBitmap_GDI As Bool = False) As Any Ptr
Declare Function Convert2FBImage(aMemGDIpBitmap As Ubyte Ptr, iSize As Ulong) As Any Ptr
Declare Function RestoreMemImage() As Any Ptr

'init GDIPlus

Using FB

Dim Shared gdipToken As ULONG_PTR
Dim Shared GDIp As GdiplusStartupInput


Screenres 128, 128, 32, 1, GFX_NO_SWITCH
'Color , Rgb(&h40, &h40, &h60)
'Cls

Dim pImageMem As Any Ptr = RestoreMemImage()
Put (0, 0), pImageMem, Alpha
Imagedestroy(pImageMem)
Sleep

Function Convert2FBImage(aMemGDIpBitmap As Ubyte Ptr, iSize As Ulong) As Any Ptr
	_GDIPlus_Startup()
	Dim As Any Ptr hImage = _GDIPlus_BitmapCreateFromMemory2(@aMemGDIpBitmap[0], iSize)

	Dim As Single iW_Img, iH_Img
	GdipGetImageDimension(hImage, @iW_Img, @iH_Img)

	Dim As Any Ptr pImageMem = Imagecreate(iW_Img, iH_Img, , 32), pixdataMem
	Dim As Integer pitchMem 
	Imageinfo(pImageMem, , , , pitchMem, pixdataMem)

	Dim As Rect tRect = Type(0, 0, iW_Img - 1, iH_Img - 1)
	Dim As BitmapData tBitmapData
	GdipBitmapLockBits(hImage, Cast(Any Ptr, @tRect), ImageLockModeRead, PixelFormat32bppARGB, @tBitmapData)
   
	Dim As Ulong iX, iY, iRowOffset
	For iY = 0 To iH_Img - 1
		iRowOffset = iY * iW_Img
		For iX = 0 To iW_Img - 1
			*Cptr(Ulong Ptr, pixdataMem + iY * pitchMem + iX Shl 2) = Cast(Ulong Ptr, tBitmapData.Scan0)[iRowOffset + iX]
		Next
	Next
   
	GdipBitmapUnlockBits(hImage, @tBitmapData)
	GdipDisposeImage(hImage)
	_GDIPlus_Shutdown()
	Return pImageMem
End Function

Function RestoreMemImage() As Any Ptr
	'decompress base91 encoded image
	Dim As Ulong iLines, bCompressed, iFileSize, iCompressedSize
	Dim As String sBaseType, sBase91, aB91(1)

	Restore __Imagepng:
	Read iLines
	Read bCompressed
	Read iFileSize
	Read iCompressedSize
	Read sBaseType
	For i As Ushort = 0 To iLines - 1
	   Read aB91(0)
	   sBase91 &= aB91(0)
	Next

	Dim As Ulong iLenB91
	Static As Ubyte Ptr aBinary
	aBinary = Base91Decode(sBase91, iLenB91)
	
   Return Convert2FBImage(aBinary, iFileSize)
End Function

Function Base91Decode(sString As String, Byref iBase91Len As Ulong) As Ubyte Ptr
   Dim As String sB91, sDecoded 
   sB91 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,./:;<=>?@[]^_`{|}~´" '´ instead of "
   Dim As Long i, n = 0, c, b = 0, v = -1

   Dim aChr(0 To Len(sString) - 1) As String
   For i = 0 To Ubound(aChr)             
      aChr(i) = Mid(sString, i + 1, 1)
   Next
   
   For i = 0 To Ubound(aChr)
      c = Instr(sB91, aChr(i)) - 1
      If v < 0 Then
         v = c
      Else
         v += c * 91
         b = b Or (v Shl n)
         n += 13 + (((v And 8191) <= 88) * -1)
         Do Until  (n > 7)=0
            sDecoded &= Chr(b And 255)
            b = b Shr 8
            n -= 8
         Loop
         v = -1
      Endif
   Next
   If (v + 1) Then 
      sDecoded &= Chr((b Or (v Shl n)) And 255) 
   End If
   iBase91Len = Len(sDecoded)

   Static As Ubyte aReturn(0 To Len(sDecoded))
   For i = 0 To Len(sDecoded) - 1 'convert result String To ascii code values
      aReturn(i) = Asc(sDecoded, i + 1)
   Next
   Return @aReturn(0) 'Return Pointer To the array
End Function


Function _GDIPlus_Startup() As Byte
	GDIp.GdiplusVersion = 1
	If GdiplusStartup(@gdipToken, @GDIp, NULL) <> 0 Then
		Return False
	Endif
	Return TRUE
End Function

Sub _GDIPlus_Shutdown()
	GdiplusShutdown(gdipToken)
End Sub

Function _GDIPlus_BitmapCreateFromMemory2(aBinImage As Ubyte Ptr, iLen As Ulong, bBitmap_GDI As Bool = False) As Any Ptr
	Dim As HGLOBAL hGlobal
	Dim As LPSTREAM hStream
	Dim As Any Ptr hBitmap_Stream
	Dim As Any Ptr hMemory = GlobalAlloc(GMEM_MOVEABLE, iLen)
	Dim As Any Ptr lpMemory = GlobalLock(hMemory)
	RtlCopyMemory(lpMemory, @aBinImage[0], iLen)
	GlobalUnlock(hMemory)
	CreateStreamOnHGlobal(hMemory, 0, @hStream)
	GdipCreateBitmapFromStream(hStream, @hBitmap_Stream)
	IUnknown_Release(hStream)

	If bBitmap_GDI = TRUE Then
		Dim hBitmap_GDI As Any Ptr
		GdipCreateHBITMAPFromBitmap(hBitmap_Stream, @hBitmap_GDI, &hFF000000)
		GdipDisposeImage(hBitmap_Stream)
		Return hBitmap_GDI
	Endif

	Return hBitmap_Stream
End Function


'Generated by FB File2Bas Code Generator v0.75 build 2018-02-22 beta by UEZ

__Imagepng:
Data 9,0,6110,7509,"Base91"
Data "vuk:eJs4+BAAN/<MCG4DAAAABAAA´CDAAA]qNZ}KAA:`zw6d*AAAC´sPwAIwHAXtCt_c4cKF5W5BJO$|&C&R%tYx(}Q@1X+I4b3W3`UH´yoY:N^IUaw1j`,O<kVx3KYd_vNdF`PI>TqYW3u<n7~Q(%9vK8.A?3+$%v:16AA0G´jsNtHL|$QZi+7tt8>MD,rI$!4Y3NC)ZE[9a5]qJOcMAANBv(UAsICAEUdZcEAAoAuWEA*hAAtJLAj#D´4IUijG0n8j2dNz#Gvn,dWHV?rjTV<+Ocd9<o09_:>]2WGgTFM3I08OY!IPRoAP}281$6+NCo87^h.!X<({3p>Vym+FIfPjbIn>aeN%4O6.hxodPMk>p7]#R`p.>s1,Gi%U#k´,M`bSNsNbBhAL<v,ZT9f`G!~aL^>Iq,mZeo?/>4#8c7TpCr:=Lr%T(2#mU7AjV2,fjQ1e9./jw#~i1EMg´DaT_*;@<!D).P?n2Jl&}+$;Z#q(yVno@6K3A_GZx&S;ALhq^;Uh]|d_VWB´j_B´B´J>2}hy0~f.VWS_:s)%7=Fk$S<4^8M@QIjIo(uKq_nr2,bg{<V;;!0mAPSb>f].2%zdQ5%8Ak#S)|2+OTI!dvGmJ5]D1k7Xr{nyFrCj7g2;26XT9j/PJ5%X?M{*1|x&_^_^kp9ltL_rg|Fm2{hgoxZTK[0fX]eg26];w]<H`rrrN4~<;QYpT)p#R]Q:m7YqYl+%0buv{,I;W!J85PYl8*vDhQ6bjrqx7lu*}a=|bzcQY#b*k70_vI9PyYiyYGSL{aQ]pt|OGM$1gId7dsoPzhDgf<T*uY$SWi.,{cBg8:.3$@R5$Si[VW4AeZET`Z+xeXHBt1Y0JkIn/qAL!dC+.xtKBk!WdzPck)9`$/zVLeMgLCEdhpw_"
Data ":wvWtEgQbaG´@o,1Gn}C_,iW.i#!rqU3xf.#bO´^o]n=k(=Yo#{s4xNj&)cR0]*M[8_PtqTbSC8pz+>xr{&eB$>bkl&lQAMcKSBY~413X=|gR&qg~<q_c=uogUWD^C^($LrZ!MNcur<XRki]*;+^{O7%B>An~=4GrDt|5.M$nP?g$oV}{k~NT_<JR}/8^+Mm<zYFq(a*tW:>kBn;<9N/Ip/m*=0Bwg;abs,w;~kn+V*e=D+;:~[Q@*.RC<kB?#?9b$==Y~It(vl>#=;:n(,=w5X^l?Vrn|kh0Aq%VAU;Gu0K.YGzTB/`X/<hIoj{a21}SyqIfCZ}Sp2_VPq2!nU9z:J)fgT#Dp+.W+C?``aITFe(4UbP`Ajy]QdF7?*O!wS|ymRj6QtQ9a?DO.%aZBkC2Zf5`oeCLcO~S(RX´|wQxrHh@b}zvb82~~W7.J>%LA=h]CwjrL_sF*TOTi}i7;ina|UKhBm{wfx>)u<s|2stSbAh:C~(nfKW<~|G;#g(,uW$A%GzY8)r!j9OR1C0w_2bU%#=x>Ur<>Xyy?M_x%Ok@Bi_!~W_W]y{+{G6WXp|lC!rKCm!8Y(;?@3&GWu6AqaB/&0]?9Dxb.5yZ_Lj>;s<SPyI2^bq/m~gm(@O)(,ZU41|J9;:M(5uPhu4Nd&>t&;904DKhP:z/ZP=Z6´&D+5j´cCHa)X#7t|IKEg;wfUNV!s<p&wqlI}dW[Y|tf1}XP!Y]B3Mk_K(w>=3uR8?p:fY0]T}QtLo~l5E`j,a~GN2n;As|+>#YgzM#2~iZ#W_mFg&Y$p;o)5XM58F^kljPm&u`*YL^oBW(OruqI!pLP4VKFZpE68e´y[QP!K{,9(hQ3qIt.v<=#l&9)grSKKSu:bab}EeXWtux´u%d7vP8xIDmcnff|r>"
Data "`)Xl.7Zf)C~ymTV?Ml1:x6F~qN]u}$X´qVv(zrVqp)pSloy!zIxW{J:_Yd0O´F&WPAt~?bB|t%LM!><^sFoA;n,n{={CM8z<vA7fnpd%/FSs:I$^FhP)Hs}sv;i=PXpM`f(q1KwMh4MP/ozAD]!Sm0L67df?bUZt2;JSk<UL[0SZ+UNB(_A]HhZz1DnzKswugO;,!]r~AMsHW:7nrIDAM@+sp!Crag$05$@w7)_!s]+?SL$q8Y(oBT}(_,e!@w:pd´O9hX_o3WBtzj6>MSZwDwl}tgS#&_#|X%z~qv)b%Kkws7405e|Gh@[;KJc#&^41Yh~]Tv:}p/$<[+dtT}PkP%:1.~(HI]ON!;N2hnRsMKXCoan_pJ5F]j&=KFfrcCS~{s:Pm$|}3LnHmeMIH2s*Oj*;lp&xL<.J)JO.hqR4%5Y3^:~`#/QwD+tTY4Iv´TTR6|u0>+5Ub´!isD*s:y/rypgTUO=w?+>s9CqZ$bAhUOv#6CFN0#q7oOKE3,ktM=<3LSS}>0WcfH/Fg{`[W#2.q9kcL#YrFzH6,+i@xr);vOq:6C&3v6A{T^;0P/&p8<DKMBroiQ(I{@i1CXiSkce2}r{S]VpJ,vPhkTsZ#1d´zTHwe!P?V/?#[iT_N/`A4&^F].L3>aX`!QeJ2QhFB<o>S2cf`inr(6eI+=t5^e<fP=a6ac_XEX9a~WoU+KgQzBjy`PT{Ac}+M~Kh}%Qb9.}Qr:XcVSpRmW0~8$?I{LD{´dFm1W|v/lk1g8N:Hp6mXV/U$&7>yp`[SN(nX`/0=^&6´y^o=*71_X52,LjYv4qa3*hQE*7_kE;uWjgUoK[apdm_^L*[tZ$g1CVd<L5RR{EyJ{Y5ZPP7/SMpbrp$Y6zRCOECFg:95/Z.V:(tK}?v~BHrfO,{"
Data "VV4+>,PYGD}o~D4e#u4xDWR=+g^a{HarS4nsJRBc/GksKw`OYHY/d#I6`XTP9@k^5Io`Q`F!hQZLyxh>>r|:UGI(L{Tq$GT7Y7W5%]<4Yc(`kSZm57>CEM.>WuP7k^id$KMm;DyRJx#T`;]$Mah)lx{^_NSV>Z$f}fO!*PA018RG4ha+XUB;I%e2r,3L,bOUy4nBBTY2uoF,gL$4=q>2!20gapZFZxEXVFWl[YzB+147x|!hRT{BKhs;LoY6,L2{t/mSv{´)p´DpPf~N=+yrV434:%<1[H%N8:eO?in/,rx(?!il?3`YAO3Q&,BFX5(<b5=}T?9|A2(l:E83?´´l[(<TJOu/lqu9`r(1Bb,.)%wUItWHpQ.#.9_[Fake|04yhfSY=Fg%`:}RL1XWbZ6spdo9*Mboy]dOCC1THJ[aE)SQdz&0T$X3R|{Wf3x(j]s5r82UW{[7~CD[sQ@L/ny%=kmSbs[exe7kd2%:F9hOUD´tzUPTmTFR.ocs1Xu1_5]OmW$.fJa^gI6^}E$+%99g=}~Qr+[Cp.>)?so.[G#(F6)G9&nS(wi;$]I4(UsGgr(E%lU#?S_nM0d890^.|epeyGs4lb0}H{CJHpbE]a>Q2,´Sg+1W{3ASb6ijka;c~CR,jJ#{d}0]%d?=H(3ovd]a´c2x=L2uf#C{Lb/(nQMf$:f^SM4Cj1n$VK/o*^kon!9lPxcc.<W3b`CtfuD@=o;mueSU0oj%v$$:{GS3h2WRWVL%quWBp1>]1c9XyS@oGZ%`[fRYJzUP+c1R.`rfT;8S5^|wgsjJk9X(F#8xunDOAvj#^_Boe@EQsZ|}7E0iMqsClvZ48LEDeO.EO1´)jXlyW/y&)pUy8yRLF+f5$V[k[_4.1#Mr4,ol/Er~h/2mM;krM4IL"
Data ">w&9N_i%)5R*qsYFdb&´54´2iD{8/.6q_QT/fJKy%<[Ar~7,$I3+4^w|,|8vvlGIV7XQj,RFTWk|s$Pw´T.lAv7b%8,pDvuPmSdx=vTz(x}0KAgaO´gSOOJ1Eje+JhVGq+p.?d>f5P<M%][I{u=C59q<;ov=*Z,d0:,e,//v9reu3L/D@Aai*3xO%AcEO´^0jHIwiE$gbufjT{GmvS89U7Z`U&IIutrlirw5pgNph+|B@=R(;&4IU^Me)W$I!WF0m_pxWDH6TS.Z#e,SoHln]BpK{F.I|Gih414E:=7PU5G9K:Xx~IIvsuy.?)I+´8tjO)b8Kx?*89HVS%WC9/eE+uh#3ENAjBcZZ1K3`nC=vJ*%(A)KC~<:9g/n´8]N*}{Kjk^a]p*4t)0,>06~qz)c#SqR%<:Ycoe)SJUAoGQcPH|X9<~oH6/Y4.KkUjkd5YSxu1qUDt@kz@$?kR8rZL%ZrdN^.Gg([j5Z4O?r*8!8XfAmS:+J~bG$6PVx7Ik)lpKJ~8VAD,JH^x9>|.C:Fam5eKvWZa52yggNb*|Z1BI]jH}KJZ)pb89V3,/NhK4wIZie5if(T0]Qb#ytY0ZA&ZgE>Scz]BwE*cC=)})`|fFZe+hl=pMWM([uJmwm3mQJIOvsmRe+FcIL=tZQoC9n!wm,*y.AjXClgXG2.N|kpxyWi<E´mrS0PaZfn}Ky+>p#1Tzjp!<0iND}:Ls<mUt2#JTJU~p:EyX<V{{C/tR@UcBdTOG5BUEy]?@8*B%EB?ldC´~_fyk*^kTKa4caF&:;)]a41`/gtCIr3lE8QFRg?mD}sc,ikKPv|ufOD6Y4/EGO}?npuVEtb`BdmWw?Ra`c,X$$><Ox&,Q|AaL]Sy=r[.W]1{4!sE|zLzsD8TSeAxu=j:Bwf$g$"
Data "cM2l7WNC_y8{f5[Q0nUxG}O(HYQ;,gQdWCgEr(II4igt?zr!!!2J}d=(z8vx6b.h;V=a]8d5uVD]4j´U]==:?B*hx~#zck,>*j)mVM0a=h(B{e{~gvQ;o6Gma)OTMjOU$>,NSC+k_rfH><@Q6Sz>z*GF!TzS%/#c3r0|oUN´;Qcy6W{U9b2V]_fSAM*N}3B+4L@f8OopX,o9J;c[8X#8R%aSZLIa2k`i|%q.h2|_+=F?7S´Ca$4bZLN@3/ptB}S):Tr=8:y?zD}*``´InSuoXPNrgM^M(v9}|,;B<884j2h&DO#l0yn&x&6}o@KG3vo<v3cLB=0QC<QU_CDSyInE|Rp]5gP5#}WB]#;ld;H[s[DF;kK61.D6?Sj3Z]K%x]_=?e.d=26RryCQN=j//AtT#8=HYY+a~XCDZc20?_Sx7ka_(}Nh*@3cWXe=qKg`R&s,$S_Qecnm:JnsI(H59|y[<Y|0VQb]L4R#*>NsjqT]5E+oG||HB[|`iw>8RF`=kup}i3O;la;t/Mw!DeXe4kZ$PO9R:ZxGYW21H9Hwz]TU2tF<=MpUSF#7Q5f61<c;ma,+dJ8@/^Y$pob<!z[`&QM/Yn%)|YN<Ia;@g0RA&Slu.F5lS|Tk><w]NQ^Yv]gh{4jMxw[H)kipxBMIP;~hc.DI#S);n@olm;&9j;dhyGO3KpW*2w.YOGyI<zWyjzZ]R%h8)&#gf0ts2$a=F(%s!][~0r<%K,!nn5BXAQVq9Yo];MO!I3&BbqCYpQPEh>VX6dJ=4f]59=I!Fpw>)@(|5R1P:nIX_~#51V~+/{m~8</Q4O^$281t|U+9:l5ji=4?u~dw6rtQ|<,65U^}8D+Ux^{i/+u1lAv~3^6xBMT~´rS.Ic2*>3O3i>i<JqQ5dCJ9Cd5!V()y"
Data "2#bXc#2`K?+DV}Wh./e7g]*rFcW0uw)7LNYNMgg0b%GhSME%´1qi?sO$#ht3K~p;.M/TP5H<YYkzn+;q&G*´sR^4vUU|z7_E#q;+mHUUspoRd[K^vO8LRN?(yGuNFcC}F>b(4oDWF~AVW6#`P@<&?e}hmV2!|#/]#8K#wuG$G0y%wUB=V`mW&`dm>vv>L8JSkfY0x[66=pPk43t>X*aSO[^O´Wl,[*5R9CIq=M<qfz}[3qmDe<knw|GnT760w%CSsJ+pwibRZ{352$HJ+NoEJ$`^$~O}T.RE(oN44f#@Tel$M.V)U[a;g$H<Z3^[H00+G?3(W=6K,lV156^*nTrT;_R,X;=Kqb.TjAt/O=RU#$.`lW?9b~::P4ah6X75W@ys+.5pv:QIjnpxZziVw38#H]/~u.)3np/m>aIp´@{a=(B8?B54yutn´4y;%%v&a[GWik*6#}pVG1Ye~/5>x^´14*#]h;pds!bMwf3a=,oVCPLxtiBlP~´}[b5TWB8%W0Tt;F^XX7QLGeYy~>*b>X={LTT>KSsl,4Eh$_]|m[u5$[958%1N1`[2s(oP1ncIYV;HlQD&:Mep$zwh~sM{|WK´>|QJ~$S^fgs2m#FZuqBOJ&A4DQ$`/3QZ8Z$qy#pN}Sip`M~N(T1FP},BqTQ=7${wJ]K_6O:BdMBN#Thg~qgP;Bk[D~b+6Vf&ch,~4YRJYN6t@J&3=oKt,rN,NX2)s|usxMo:LvV(!8v,,ZPOHDmB$IXa]_|7_T17Xop3*{]^@Gg.c`>?xSz[jdP+<W!IbN>2S9;+q78|´AL_Zjn1jsJ4z>O#9jpx:F[Q(FYoOeN(TRj/SW1yJf)>m]T#Ts+CTuQ>7Ieb;$(o@h%gaL<)_.4%XP3O}8h&<6MJn<7O(6UkS´WcQa1`"
Data "|sJ]2fbaE%;2LZv$><;_MDezlLZWw,8=i%{l(gxWb_G2&nXDvLyhl{>rQ%|vPnFBL44BH6k0u1=y,4/qOCI$l.GHbg^8uTBh:^Q~ma9+1;XI,>&f´W90(<k5((rZnmDL5oXZ!yD`Fn#=Ip=Q´GVUYCz~pu8?_pd+w:!<m`>wC^u*T_2a>})yDKE`{=[]:v]1Y}DvA]<wqj5]m_zvN+[CzZk%G3l`~;l%TF9l`XG+´3]nY35UyC7x5MYu%XoX´+KJ^*k)XuW;N}f1mgz;>.d:TQ}YQFIomo/fFa=EoH^L{/0rKXaFRelFtLCI`]:|t`;+2.ZU52d[.|P{|uTBIoKl?VtZg/MUH(WkOJ4DRzax~]UtR_?&wReAl&?UD_L.~u4Cbfi,Sd)f~VsOE4g;zQ0E92LW#0+V@)kq@n!3{5COi|R]6/of]UD0o4u&%+yR>h0xS)FyVT7z6m}nMRZypqIMVf*.j<.r/oN´h`nCY(J16*f!.*=:!)yELP3yE.]]mLmak<|M*n{oLAsh+Nr3k2<VH%I<{zkT~+z$v[S~H,f:b2i_|84tX?Or8&S/9AEqwpS4s/X+q<mWH^kTtspFnr9_WZe^S7xX[@a?]fD3%aPqyFx@ca])8~nMt{pi|]%$|DP}mI}DW|U7lSv,k~f[P|C>&JicYLdnG})}+~e{98^oes%C9G}/}=ibO@|kmL~Ke=2rPqvKZ`#y=UB+pim67U_x9E0?@P%>InPwpFvbFOGbTcEh3l,@5xQYc(i[A;Z,K#x7!0uwAhUHoF9zU`wi>8,@L+~2~niVtq&m;6D_e6+/YB7rM/:ys%j)<F?3I=`XAkAki5%[5A%3;Wb1=:=2kP@]C~X,z^QVN6`cp[N/)^G(Ib[FfWV1>;XpC$Q??)&^bB7>jWYE"
Data ")%*yJ`J{4bmHz>A|.riv^T&Kz(kv{qslP[)p(RS;aXy!5m#{99^lr?s(9*6MIbIT9$?0@_v@bYSHcsXMBn%9f5.#kQ{Ds%kQ1TR)#WcpHjq)?!5YO_$zoWU8js.pEWqrL+OlWBcnwnKrxiqVPt5CIL+|%gn,q/Mr,q%[eBjB|xmQ^}_P^>&52/9C(f|mD02L>*HOO$`9fA=`´mqaB8X>FSPT7hY4^#Enl8I,SLP!kB+OkKu!QN1bhQ)gdUM8)Uv)EAl(Mcvxd(´<}1}}#g*`a?}sT|Fu9qecNELY#QAAAAr7vbMo>F9BB"
The image is encode in Base91 format. The encoder can be found here (written in AutoIt): http://www.mediafire.com/file/j2ga44sfg ... a.zip/file

Just drag'n drop the file to the GUI and it will generate the FB code.

Who knows, maybe I will convert it someday to FB...
Last edited by UEZ on Aug 03, 2018 9:53, edited 1 time in total.
BasicCoder2
Posts: 3906
Joined: Jan 01, 2009 7:03
Location: Australia

Re: Image Conversion

Post by BasicCoder2 »

TurtleProgrammer wrote:I used an online Hexadecimal converter on an image. To save space here is the first few lines of the output:
data 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01
...
In the example data statement you can reduce the size by placing it in inverted commas and leaving out the 0x part.
When you read the number just add the 0x for conversion to its rgb value.
Maybe this thread will give you some ideas.
viewtopic.php?f=15&t=25440&hilit
sancho3
Posts: 358
Joined: Sep 30, 2017 3:22

Re: Image Conversion

Post by sancho3 »

Holy smokes I learn something new everyday:
in·vert·ed com·ma
nounBritish
noun: inverted comma; plural noun: inverted commas

another term for quotation mark.
dodicat
Posts: 7983
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: Image Conversion

Post by dodicat »

lang "qb" allows the use of raw data.
Using lang "qb" is just as effective as lang fb if you have no fancy oop work.
The help docs shows the difference between lang qb and lang fb for keywords.


Code: Select all

 #lang "qb"

#define ulong __ulong
#define valulng __valulng

data FF,D8,FF,E0,00,10,4A,46,49,46,00,01,02,00,00,01
data 00,01,00,00,FF,FE,00,0F,4C,61,76,63,35,36,2E,30
data 2E,31,30,31,00,FF,DB,00,43,00,08,04,04,04,04,04
data 05,05,05,05,05,05,06,06,06,06,06,06,06,06,06,06
data 06,06,06,07,07,07,08,08,08,07,07,07,06,06,07,07
data 08,08,08,08,09,09,09,08,08,08,08,09,09,0A,0A,0A
data 0C,0C,0B,0B,0E,0E,0E,11,11,14,FF,C4,01,A2,00,00
data 01,05,01,01,01,01,01,01,00,00,00,00,00,00,00,00
data 01,02,03,04,05,06,07,08,09,0A,0B,01,00,03,01,01
data 01,01,01,01,01,01,01,00,00,00,00,00,00,01,02,03
data 04,05,06,07,08,09,0A,0B,10,00,02,01,03,03,02,04
data 03,05,05,04,04,00,00,01,7D,01,02,03,00,04,11,05
data 12,21,31,41,06,13,51,61,07,22,71,14,32,81,91,A1
data 08,23,42,B1,C1,15,52,D1,F0,24,33,62,72,82,09,0A
data 16,17,18,19,1A,25,26,27,28,29,2A,34,35,36,37,38
data 39,3A,43,44,45,46,47,48,49,4A,53,54,55,56,57,58
data 59,5A,63,64,65,66,67,68,69,6A,73,74,75,76,77,78
data 79,7A,83,84,85,86,87,88,89,8A,92,93,94,95,96,97
data 98,99,9A,A2,A3,A4,A5,A6,A7,A8,A9,AA,B2,B3,B4,B5
data B6,B7,B8,B9,BA,C2,C3,C4,C5,C6,C7,C8,C9,CA,D2,D3
data D4,D5,D6,D7,D8,D9,DA,E1,E2,E3,E4,E5,E6,E7,E8,E9
data EA,F1,F2,F3,F4,F5,F6,F7,F8,F9,FA,11,00,02,01,02
data 04,04,03,04,07,05,04,04,00,01,02,77,00,01,02,03
data 11,04,05,21,31,06,12,41,51,07,61,71,13,22,32,81
data 08,14,42,91,A1,B1,C1,09,23,33,52,F0,15,62,72,D1
data 0A,16,24,34,E1,25,F1,17,18,19,1A,26,27,28,29,2A
data 35,36,37,38,39,3A,43,44,45,46,47,48,49,4A,53,54
data 55,56,57,58,59,5A,63,64,65,66,67,68,69,6A,73,74
data 75,76,77,78,79,7A,82,83,84,85,86,87,88,89,8A,92
data 93,94,95,96,97,98,99,9A,A2,A3,A4,A5,A6,A7,A8,A9
data AA,B2,B3,B4,B5,B6,B7,B8,B9,BA,C2,C3,C4,C5,C6,C7
data C8,C9,CA,D2,D3,D4,D5,D6,D7,D8,D9,DA,E2,E3,E4,E5
data E6,E7,E8,E9,EA,F2,F3,F4,F5,F6,F7,F8,F9,FA,FF,C0
data 00,11,08,02,D0,05,00,03,01,22,00,02,11,00,03,11
data 00,FF,DA,00,0C,03,01,00,02,11,03,11,00,3F,00,F7
data FA,28,A2,98,05,14,51,40,05,14,51,40,19,BA,EF,85
data 34,5F,10,A8,FB,6D,BF,EF,47,DC,B8,88,F9,77,11,FA
data 6D,95,7E,71,8F,63,59,AB,A6,F8,C3,C3,40,7D,8A,ED
data B5,FB,34,0A,3E,CD,74,C5,6F,15,46,72,12,52,5B,CC
data C0,C6,37,30,26,BA,4A,29,31,D8,C7,D2,BC,5F,A5,6A
data 4F,E4,39,92,C6,E9,78,7B,5B,A5,F2,E4,53,E9,9F,BA
data DF,81,AD,47,86,39,D0,A4,88,1D,0F,55,61,90,6A,AE
data B1,E1,DD,23,5D,8B,CB,BE,B5,8E,43,FC,32,81,B6,64
data 3E,A9,22,E1,81,1F,5A,C8,FB,07,8B,BC,2E,73,61,29
data D7,2C,47,FC,BB,4E,D8,BA,8C,7F,B1,23,67,7F,7F,BC
data C2,A2,C2,31,BC,6F,FB,3D,78,1B,C6,1E,64,C9,6A,BA
data 65,DB,64,FD,A2,D5,76,31,27,B1,00,81,8C,F5,F5,AF
data 22,F1,8F,EC,F1,E3,AF,08,48,6E,74,FD,BA,AC,08,49
data 47,B7,2C,2E,40,CE,78,45,E3,D3,23,78,1D,EB,E8,3D
data 1B,C6,9A,4E,AE,E6,06,32,69,F7,6A,71,25,95,EA,F9
data 33,27,D3,3F,23,0C,F7,0D,5A,E5,55,C1,56,00,83,D4
data 1E,F5,0E,29,85,8F,97,3C,1F,F1,A3,C7,7E,05,9D,6D
data A7,96,E6,78,10,FC,D6,77,A1,B2,31,D7,1B,C6,7A,7E
data 55,EB,DE,09,FD,A3,BC,1F,E2,4F,26,DF,51,63,A4,DD
data B8,1B,84,BC,41,93,E8,F9,3D,7B,64,D7,47,E2,CF,85
data BE,0C,F1,8C,4C,BA,8E,9B,07,99,83,B6,78,D1,52,65
data CF,A3,2E,0F,15,E4,7E,36,FD,96,35,BD,28,3D,C7,85
data AF,BE,D9,02,E4,8B,5B,8C,89,40,1D,02,BE,E3,FA,D1
data 1000000

data "23",34,f,"56",ff

dim as ulong u
dim as string s
do
read s
if s="1000000" then exit do
u=valulng("&h"+s)
print u;
loop
print
sleep



  
Post Reply