Convert Image to DATA Statements

Category: Bitmaps

Date: 02-16-2022

Return to Index


 
'Sometimes an application requires only a single image (icon or bmp).  And while it is
'not difficult to use image files (*.ico, *.bmp) or resource files (*.pbr), it can be
'a little more convenient to avoid their use when only 1-2 images are needed.
 
'In PowerBASIC an image can be converted to a bit string, modified, and then returned
'to a graphic target for display.  This snippet converts a bit string to DATA statements
'as part of a complete Function that can be inserted into a PowerBASIC application.
 
'The Function that is placed in your application will return the recreated bit string
'of the image, which can then be loaded into any of the three graphic targets.
 
'Here's an example of the string Function that this snippet creates - in this case
'for a 2x2 Image:
 
    Function BitString() As String
       'bit string for:   aainfo    2x2
       Local bmp$, i As Long
       Data 000002, 000002, 000080, 000080, 000080, 000080
       For i = 1 to Datacount
          bmp$ = bmp$ + Mkl$(Val("&H"+Read$(i)))
       Next i
       Function = bmp$
    End Function
 
'When called, this Function returns a bit string that be used with Graphic Set Bits to load
'the image into a graphic target (Graphic Control, Graphic Window or Graphic Memory Bitmap.
 
'Because PowerBASIC has a limitation of 64K bytes and 16K DATA strings in a procedure,
'the snippet will only work on images sizes up to 90x90 pixels.  I'll release a way
'to work around the 90x90 size limits (by creating multiple Functions) in a later release.
 
 
'Primary Code:
'The CreateDATAStatements function is the heart of of the snippet. It's output is a Function
'which contains contains the DATA statements and code needed to re-create the bit string.
 
Sub CreateDATAStatements
   Local temp$, i As Long, j As Long, xsize&, ysize&
   Local iCount as Long, P as Long PTR, iWidth&, iOverSize&
   Graphic Attach hDlg, %ID_Graphic
   Graphic Get Bits To bmp$
   P = StrPTR(bmp$)
   xsize& = CVL(bmp$,1) : ysize& = CVL(bmp$,5)
   temp$ = "Function BitString() As String"
   temp$ = temp$ + $CrLf + "   'bit string for:   " + imgName$ + "   "+ Str$(xsize&) + "x" + LTrim$(Str$(ysize&))
   temp$ = temp$ + $crlf + "   Local bmp$, i As Long"
   For i = 0 to (xsize& * ysize& - 1)
      temp$ = temp$ + IIF$(i Mod 30, "", $crlf + "   DATA ") + Hex$(@P,6)
      Incr P
   Next i
   temp$ = temp$ + $CrLf + "   For i = 1 to DataCount"
   temp$ = temp$ + $CrLf + "      bmp$ = bmp$ + Mkl$(Val("+Chr$(34)+"&H"+Chr$(34)+"+Read$(i)))"
   temp$ = temp$ + $CrLf + "   Next i"
   temp$ = temp$ + $CrLf + "   Function = bmp$" + $CrLf + "End Function"
   Control Set Text hDlg, %ID_Data, temp$
   Clipboard Reset : Clipboard Set Text temp$    'put result on clipboard
End Sub
 
 
'Compilable Example:  (Jose Includes)
'This example displays a resource icon. Pressing the button generates the
'DATA statements and uses them to load the image into a second graphic control.
'The output Function, with DATA statements, has been pre-loaded into this example.
'The technique for converting a bitmap is identical. To modify this example to
'show a bitmap, just uncomment the 3 lines 'ending with  '*** BITMAP.
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
%Unicode=1
#Include "Win32API.inc"
#Resource "gbsnippets.pbr"
Global hDlg As DWord, bmp$, hLst As DWord
 
Function PBMain() As Long
   Local style&, h As Long, w as Long
   h = 16 : w = 16
   '   h = 40 : w = 40          '*** BITMAP
   style& = %WS_Child Or %WS_Visible Or %ES_MultiLine Or %WS_VScroll Or %ES_AutoHScroll _
      Or %WS_HScroll Or %ES_AutoVScroll Or %ES_WantReturn Or %WS_TabStop
   Dialog New Pixels, 0, "Test Code",300,300,600,370, %WS_OverlappedWindow To hDlg
   Control Add Button, hDlg, 100,"Create DATA", 50,10,100,20
   Control Add Graphic, hDlg, 200,"Push", 170,10,w,h
   Control Add TextBox, hDlg, 300,"<DATA>", 10,60,580,250, Style&
   Control Add Button, hDlg, 400,"Use DATA", 50,320,100,20
   Control Add Graphic, hDlg, 500,"Push", 170,320,w,h
   LoadResourceIcon
   '   LoadResourceBitmap         '*** BITMAP
   Dialog Show Modal hDlg Call DlgProc
End Function
 
CallBack Function DlgProc() As Long
   If CB.Msg = %WM_Command AND CB.Ctl = 100 AND CB.Ctlmsg = %BN_Clicked Then
      CreateDataStatements
   End If
   If CB.Msg = %WM_Command AND CB.Ctl = 400 AND CB.Ctlmsg = %BN_Clicked Then
      LoadImageFromDataStatements
   End If
End Function
 
Sub LoadResourceICon
   ImageList New Icon 16,16,1,900 To hLst         'create icon imagelist
   ImageList Add Icon hLst, "rocket"              'just a single icon in the imagelist
   Graphic Attach hDlg, 200
   Graphic ImageList (0,0), hLst, 1,0,%ILD_Normal 'copy the icon to the Graphic control
End Sub
 
Sub LoadResourceBitmap
   Graphic Attach hDlg, 200
   Graphic Render "cowgirl", (0,0)-(40,40)   'copy the bitmap to the Graphic control - 90x90 max
End Sub
 
Sub LoadImageFromDataStatements
   Graphic Attach hDlg, 500
   Graphic Clear
   Graphic Set Bits BitstringIcon
   '   Graphic Set Bits BitstringBitMap         '*** BITMAP
End Sub
 
Sub CreateDATAStatements
   Local temp$, i As Long, j As Long, xsize&, ysize&
   Local iCount As Long, P As Long Ptr, iWidth&, iOverSize&
   Graphic Attach hDlg, 200
   Graphic Get Bits To bmp$
   P = StrPTR(bmp$)
   xsize& = CVL(bmp$,1) : ysize& = CVL(bmp$,5)
   temp$ = "Function BitString() As String"
   temp$ = temp$ + $CrLf + "   'bit string for:   " + "rocket" + "   "+ Str$(xsize&) + "x" + LTrim$(Str$(ysize&))
   temp$ = temp$ + $CrLf + "   Local bmp$, i As Long"
   For i = 0 To (xsize& * ysize& + 1)
      temp$ = temp$ + IIF$(i Mod 30, "", $CrLf + "   DATA ") + Hex$(@P,6)
      Incr P
   Next i
   temp$ = temp$ + $CrLf + "   For i = 1 to DataCount"
   temp$ = temp$ + $CrLf + "      bmp$ = bmp$ + Mkl$(Val("+Chr$(34)+"&H"+Chr$(34)+"+Read$(i)))"
   temp$ = temp$ + $CrLf + "   Next i"
   temp$ = temp$ + $CrLf + "   Function = bmp$" + $CrLf + "End Function"
   Control Set Text hDlg, 300, temp$
End Sub
 
Function BitStringIcon() As String
   'bit string for:   rocket    16x16
   Local bmp$, i As Long
   Data 000010, 000010, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, 000000, 800000, 000000, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, 000000, 800000, 000000, 800000, 800000, 000000, ECE9D8
   Data ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, ECE9D8, 000000, 000000, ECE9D8, 800000, 000000, FFFFFF, FFFFFF, 800000, 000000, ECE9D8, C0C0C0, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, FFFFFF, 808080, 000000, 800000, FFFFFF, 0000FF, 0000FF, 000000
   Data 800000, 000000, C0C0C0, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, FFFFFF, 808080, 000000, 000000, C0C0C0, FFFFFF, FFFFFF, 808080, 800000, 000000, C0C0C0, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, FFFFFF, 808080, 800000, 000000, C0C0C0, FFFFFF
   Data FFFFFF, 808080, 800000, 000000, C0C0C0, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, FFFFFF, 808080, 800000, 000000, C0C0C0, FFFFFF, FFFFFF, 808080, 800000, 000000, C0C0C0, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, FFFFFF, 808080, 800000, 000000
   Data C0C0C0, FFFFFF, FFFFFF, 808080, 000000, 000000, C0C0C0, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, FFFFFF, 808080, C0C0C0, 000000, C0C0C0, FFFFFF, FFFFFF, 808080, FFFFFF, 000000, C0C0C0, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, FFFFFF, C0C0C0
   Data FFFFFF, 000000, C0C0C0, FFFFFF, FFFFFF, 808080, FFFFFF, FFFFFF, 000000, 000000, ECE9D8, ECE9D8, ECE9D8, ECE9D8, C0C0C0, FFFFFF, FFFFFF, 000000, C0C0C0, FFFFFF, FFFFFF, 808080, FFFFFF, FFFFFF, FFFFFF, 000000, ECE9D8, ECE9D8, ECE9D8, C0C0C0
   Data FFFFFF, FFFFFF, FFFFFF, 000000, C0C0C0, C0C0C0, FFFFFF, 808080, FFFFFF, FFFFFF, FFFFFF, FFFFFF, 000000, ECE9D8, 000000, C0C0C0, C0C0C0, C0C0C0, C0C0C0, 000000, C0C0C0, 808080, FFFFFF, 808080, C0C0C0, C0C0C0, C0C0C0, C0C0C0, 808080, 000000
   Data 000000, 000000, 000000, 000000, 000000, 000000, 000000, 808080, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, ECE9D8, ECE9D8, 000000, 000000, 000000, ECE9D8, 000000, 808080, C0C0C0, 000000, ECE9D8, 000000, C0C0C0, 000000
   Data ECE9D8, ECE9D8, ECE9D8, ECE9D8, 000000, 000000, 000000, ECE9D8, 000000, 000000, 000000, 000000, ECE9D8, 000000, 000000, 000000, ECE9D8, ECE9D8
   For i = 1 To Datacount
      bmp$ = bmp$ + Mkl$(Val("&H"+Read$(i)))
   Next i
   Function = bmp$
End Function
 
Function BitStringBitmap() As String
   'bit string for:   rocket    40x40
   Local bmp$, i As Long
   Data 000028, 000028, 361012, 381318, 391B19, 2B1913, 5B6053, 5B5D4F, 5C5E50, 5D5E50, 5E5F51, 606353, 4A4640, 70685C, 726A5F, 706054, 736861, 716A5A, 746A61, 726660, 746C62, 736C61, 746D5D, 77695B, 786962, 726B61, 726C60, 746C61, 716B60, 726D60
   Data 736B60, 726961, 726B5F, 72695E, 716A5F, 726B5F, 72685F, 70685F, 6E675E, 6F685E, 6C675A, 6D665C, 311924, 311823, 30191A, 3B2427, 5F5E52, 5E5F4E, 5E5F4F, 5D5F50, 5E6052, 626453, 48473D, 73685A, 726960, 6C6459, 776752, 806343, A17441, 986B3C
   Data 9D7A59, 86715C, 776B62, 776E65, 746E61, 766E64, 756D61, 756C63, 746E62, 766C62, 766C62, 746B61, 746B62, 726B61, 726B5F, 726A5F, 716B5F, 706A5E, 706B5D, 6F695D, 6F695D, 6D675C, 636564, 666262, 351E1B, 3B2629, 5D6154, 5E604F, 60614D, 5B634E
   Data 5D6053, 616654, 494337, 937650, B48353, B98545, B27F3E, AD783D, B58555, BB946C, BB926C, B58F6C, A17B4F, 9D784D, 827158, 746C60, 766B61, 766D60, 746E61, 756D61, 756D61, 736D61, 766C60, 746A61, 726C60, 736C60, 716B5F, 716B5F, 6E6B60, 716B5F
   Data 6F685A, 6D695D, 342B23, 656867, 391D19, 3B2124, 5F6053, 5C5E50, 5E6151, 5E614C, 5C6254, 6D5C3C, 9E7337, B57A44, B5844C, AD753F, AD7E4A, AC8155, C1A181, B89C7F, C7A586, C09B78, BD9773, B18C65, 97754F, 806B55, 756C5F, 746B5F, 736C5F, 736B5B
   Data 736B60, 726B61, 74695D, 73695F, 71695C, 71695D, 716A5E, 70695E, 706A5D, 716A5D, 6F675C, 6F695B, 282724, 656666, 3B201B, 3F2624, 606252, 5E5F4E, 5F6050, 5E6450, 705937, B98241, BD7F3E, B68249, AC7A48, B1875B, B28D69, B3936D, B99A76, BA9A75
   Data CFAC90, C5A381, C5A181, C2A084, B38F6F, A07D56, 897057, 776C60, 746D60, 756C60, 736B5F, 726C5F, 756B5E, 736A60, 73695D, 73695C, 726A5E, 70685C, 706A5A, 726A5C, 6F665C, 6F685B, 27201F, 686665, 35211B, 371E1B, 626051, 5C6253, 61604C, 976025
   Data AA6B29, A97038, AF8051, B48E68, B79572, B99A7B, B59779, B09071, C6A37E, CDA685, D3B292, D2B190, CBAF93, C4A788, C2A180, B6936F, B38F6A, 9B8162, 776956, 746A5E, 746A5E, 746A5E, 706C5D, 72695F, 716657, 836747, 997044, 9A6E3E, A27D55, 826E4E
   Data 726459, 6D685C, 51484B, 676765, 3F2823, 3B1E1C, 646153, 626150, 875F35, B27B3E, AD7C48, BA9674, BA997B, BC9B7B, B99A7A, B49576, B69878, B59577, D9BA9A, CFB090, CEAB8B, C9A784, D0AF90, D0B094, D4B699, C19B7B, B38F6C, B7946D, 97795C, 736C5D
   Data 726B5D, 736B60, 736B60, 8C6E4C, 976125, 9E682E, 9C6930, A66F38, A66F2D, 9E631E, AF8558, 6F675D, 382D30, 686966, 3E2523, 432528, 626254, 825E37, BA814E, C1976E, C3A381, B99D7F, BCA385, BE9F84, C1A389, BE9E7D, AF7C43, 9A631E, BD8343, BC8546
   Data D2AA7F, D3AE97, D2B191, D2B18E, E3C19F, CCA789, CEA683, B78D63, A67845, 7C603C, 726C5F, 76685B, A27549, AA7241, A8723A, B07D44, AD753E, AC7A44, AE773D, A3672D, 976026, 8C6F49, 52383C, 666764, 3D2520, 442224, 636454, A67C4A, B58D62, C19F7F
   Data BD9F80, C3A483, C2A283, C1A586, C8AA87, 9D7641, A1682E, C08944, C38A52, D59969, C3854A, BD8D50, E0C2A2, D8B796, C7A480, D7A784, D8A986, 382416, 432F1C, 906E51, 736959, 91724B, A56D38, A36C34, B07C47, B68450, B4824F, BA8C5B, A87541, 99612A
   Data 9C662C, AD7F44, 4F141B, 646B69, 442726, 411C20, 615F4A, AD855D, BF9F7C, C4A17C, C09F7C, B38E6C, C09E79, D9B792, 8C5C27, C5915D, C48C63, D8A67E, D7A774, D29E6C, BE8851, B67E4A, AC763D, D69A6F, AF8059, 9B8264, 94815A, A98E69, 907957, 8C7057
   Data 8E785D, 7D6146, B28A63, B18C68, B9926E, B28C64, A77D52, AB8057, 946536, 93612B, 905923, 9E7034, 531320, 6A6867, 41231E, 422023, 686049, AB8868, B09475, C7A581, BF9D79, C6A488, D3B291, 9C733C, BE8C5C, B68754, CBA679, D7AF8A, D6A583, C2946A
   Data B48355, AF7F52, A5754C, 895F37, B67E4A, B37D41, AE7B43, A9773C, B38149, 9E6A37, 9A6831, AE7843, B3814C, AB7B46, 9A6C3B, A27441, 9D6D37, 9A6938, 905D24, 966027, 935820, 8B5935, 686767, 666663, 3C2620, 41221D, 6A5F4D, A48563, B99A7B, C6A88B
   Data C0A287, D2B18F, 8F6437, D3A981, C3966E, DAB79D, DEB596, D2AC85, C79B71, C39369, C69A73, BC9875, B6906C, BF9777, B2896C, 965B4A, 8D4B2C, B97C3C, B47B3E, C89364, BD8447, B0743D, AD712E, AF7A3C, BB814A, AE7541, 9B6937, 98642C, 99602B, 9D612D
   Data 59361A, 131109, 646259, 66625A, 412421, 411F1E, 656152, A68061, A68765, C1A484, C3A389, A77A52, CBA27B, E6CCAF, E3C3A2, CB986D, CDA380, D4AA84, C59D77, BD9374, BF9A7A, BF9A76, A17753, 81503A, E1A8A2, D19085, C9897F, 90524C, 77311F, 8C4522
   Data B67039, B97D3F, B57533, AB6C2E, 894F21, 845329, 6E4223, 341C0A, 100802, 0A0905, 110D04, 0A0D07, 3C1618, 391719, 351213, 431E21, 626355, A1835F, B09274, C0A283, D4B294, CEAB89, C9A582, D8B896, E8BD94, D8B28C, D9B18E, D0A884, C8A07D, BF9671
   Data B68D6E, 7A5236, 8C5C4F, C59186, E1A6A0, D89A94, D48F88, C48175, C88E82, B57F74, 9E6A64, 694A47, 140C07, 110D09, 151107, 12130A, 131108, 131008, 120F07, 110E09, 0E0E0A, 0F0E05, 5D6052, 5E6052, 606052, 5E6053, 616250, 9B8365, B09678, B08E6A
   Data C69D79, D5B58A, DAB495, CCA574, C9A282, CEA67E, B8926E, B18760, A37A54, 7F5A46, C49A8C, 9E705E, DCA6A0, E1A8A0, E1ACA9, D59996, CF8F87, C88881, CC8C82, AC7565, 886052, 81635B, 51392D, 0C0A08, 080804, 0F0F09, 0D0C08, 0D0B06, 0E0D07, 0E0D08
   Data 0C0B07, 0C0D07, 5F6050, 5F6050, 5E644F, 5E614E, 626352, 9A8469, AF9776, BD9772, C19C78, E1C39E, E3BCA2, D7AA8E, C39A75, C19571, B08658, 987554, 271208, 593E2F, 694635, C39389, DAA7A1, E0B0A8, CE9F97, 916357, 7C5141, C38F85, C48A80, A37264
   Data 745447, 5F3F34, 382921, 62615F, 8A8A8B, 000000, 131009, 13100A, 131309, 15130A, 15110B, 1A160C, 5E6150, 5D6150, 5F624F, 5F624F, 606350, 7E725E, A78660, C8A178, D4AE84, CA9E7B, CCA882, B6926F, B78B5F, B7906B, 0E0300, 17110F, 221810, 361F15
   Data 9F746B, C59183, C69994, DBBAB0, CB9B8D, 895446, 694133, 8F6358, 724C47, 1D0A06, 0F0605, 4B3631, 25140F, 6A655A, 565751, 28261F, 443F37, 504A40, 605A4E, 696256, 6F675D, 6F6958, 5D604F, 5E6150, 606352, 5F6251, 606352, 756552, C3A180, BD926B
   Data DAB38F, D3AE84, D4A884, AD8057, 97755B, 2A1C12, 110D06, 271B12, 361F1B, 8E6761, BD8D80, BF8D80, CEA994, B98E87, 301611, 654340, 633F33, B3826D, BE9A90, D19B99, 9C6F66, 8D6859, 473023, 5F5B4E, 2C271D, 655D4C, 71675B, 6F675A, 6F6959, 706A5B
   Data 706959, 6E685D, 5D6150, 5F6251, 606350, 5D6152, 616351, B8916F, B78D59, B88856, C0926C, 9D7961, B59167, 361C0E, 3A2B23, 604F47, 473934, 483530, 604841, 553D35, 160B04, 020000, 3B3229, 000000, 554540, 8F6961, 98685A, B2877A, 70463F, D79D92
   Data D99F97, BD857F, A17B6C, 58453C, 120F05, 150F03, 130C00, 403526, 6D6655, 6D655A, 6F675A, 6D6659, 5E5F4F, 5F5F50, 616050, 616152, 615C48, C89F7E, C2976A, D5AD87, A18366, A0866A, 71473B, 20150C, 311A10, 2E1F12, 29140E, 332219, 5B463B, 93706B
   Data C79795, D5A7A2, CFA498, BC968E, 51312C, 835B50, 7C4C3F, 97645D, D39B91, D49D90, D2958A, CB877F, 9F6C5E, 87695D, 150F06, 14110A, 141009, 443C30, 706A59, 706A5E, 706A5D, 6F695B, 5C614F, 5E6251, 5F624F, 645D4D, A18D77, 917C63, 988372, A28569
   Data C19F7B, AA725E, BE8A80, C08B80, B17C70, 5C362C, 311A12, 2D140C, 885952, D0978C, D69F93, DDABA3, D7A59A, DBA396, D79F90, CD9082, CD8D83, CF9086, D8988E, CE9486, C88B7E, DA9A94, C68680, 956356, 0C0803, 150C04, 50443A, 6B6356, 6E6659, 6E6758
   Data 6D6856, 6B6759, 606151, 5F6050, 616352, 887961, CA9F76, D3A67A, BE946C, BE9572, BA8D6A, C08379, D7AAA0, E7C0AD, CA9380, A06B5A, 5B3E35, 644942, B28578, CF958A, D59D92, D6A498, E1ADA2, DEA89B, DEA499, DC9F95, D6958C, CF9185, C88877, D4978B
   Data DA9E93, BE857A, BD867C, 966659, 27180F, 514336, 70675E, 6F685E, 70675D, 6D675C, 6E695D, 6C675C, 5F6150, 5D6251, 605D4C, BE9773, D2A887, CEA277, C39C7B, B18967, BB9877, B27C78, E4B3A5, CF9787, C3897A, D2A898, A87D6D, 5A3427, 98685A, C48E81
   Data CE958A, D39F91, E4B5A7, E6B7AB, E4B0A5, E4ABA3, E0A49A, B87B6E, CF9686, C48D85, CC9593, BD8981, 835346, B88775, 211409, 473B2A, 6F695D, 6F695B, 6E695A, 6D675B, 6E6A5E, 6D695B, 5F6050, 606053, A28160, B58557, CA9F73, C59A73, BE9169, B38F6B
   Data AF8868, 4B2C24, DCA396, F0CBB9, D7A493, E8BCAD, C29788, A57868, B38174, C28A7F, C79082, CB9286, DCA89C, DEABA0, E8B5A8, EAC0B7, DAA69A, C78D7E, D5938C, D69B99, CB9186, B27A69, 774936, C4937F, 150D04, 281E0F, 696155, 6D695C, 6D695C, 6D685C
   Data 6F685D, 6E675C, 5F604A, 5F614D, B0875E, CFA179, B7885B, C1936A, BD9066, B2855C, A67A4D, 2D1910, D79D96, D6A799, DAA196, C2877C, D0A293, AE7F71, B08273, BB877A, C18C7E, C78D81, D8A295, DEA79C, E2A99E, E1ACA3, CD958A, C48F80, D69D95, D8A29B
   Data C18479, A46C64, 9E6B5B, D4A08D, 0E0B00, 191008, 60584E, 6E6B5E, 6E6A5E, 6C695D, 706A5E, 6E695B, 5D6151, 6D6145, D6A87B, AA7B45, C89970, B38353, AD7C50, B18256, A77F50, 1F130C, 371B13, E0A5A2, E2A8A4, CFA19B, DAA498, B68677, B68674, BB897A
   Data C69183, C79385, D19D90, D4A093, D6A296, D6A193, D7A294, B88C84, BBA29B, F0E8E2, EEDCD6, C0A7A2, 784537, B58B76, 140E07, 171008, 5C5146, 71695B, 6F695C, 6A6457, 6F695D, 6C665A, 5C6051, 815E34, B27B3B, C99670, B78950, A97641, B07F51, A77B4E
   Data AA8055, 1D0D05, 221712, 2B120C, 81594F, C69E95, B88678, A87969, A87A68, B88778, C29081, C99587, D1A092, D3A294, D4A395, D19F90, DBA395, A3776B, AB7370, B8737B, BB6C6E, B9696D, 94605A, 906F61, 110C06, 170F06, 5F5646, 6E6759, 6D6859, 6D6759
   Data 6D675B, 6C6659, 665D45, 86511F, B17C3F, B77F4C, B18153, B28156, AB7E53, A67D51, AD8761, 482E1C, 15100C, 191007, 341C14, 7F5C51, CB9486, D0A291, A57B69, AF8272, C19284, CA988B, D5A496, D6A597, D6A597, D5A395, D69D90, C99382, CB9082, D69D93
   Data CF968B, BB8474, A57764, 8C6D64, 14130E, 271D12, 696055, 6B675C, 70675C, 666558, 6E665B, 6A675C, 6E6347, 955C23, BE8551, AA7240, BB8B62, B98C65, BA8F67, B18A62, B99572, A07957, 341A05, 2A1A11, 5C3B2C, A3979A, C18B7A, CC9888, A67868, A77E6C
   Data B78C7C, C39586, CF9E90, D7A698, D7A698, D6A396, D9A194, D2998A, D69B8F, D59B8E, D2988C, C48A7A, AF7867, 946E5D, 110F0A, 281E0F, 675F53, 6B665A, 6C665A, 6A6559, 6A6458, 6A6458, 6E6046, A66A2F, AD7330, B37B3D, BA8A5D, B68D61, C09975, B38E67
   Data B5906F, B6926E, A87E55, 462516, 694333, 8F726B, BE8874, C3907A, D9A395, 9F7362, AD8474, B88E7E, C79688, CF9E90, D1A092, D49F93, D39E90, D79D91, D99F94, D4988E, D2968D, D0948B, BC8075, 9D6B5D, 130E06, 2F281A, 6B6255, 6D675A, 6C6758, 686254
   Data 6C6758, 6B6559, 605B44, B2824E, A05F1D, A96827, A66B2F, BD854F, BE8D5E, BA8D63, B5895F, AF804F, 9C6B35, 906038, 98684C, A57D6A, C7907C, C9937B, CF9880, D19A85, C6947F, A0735D, AE7F70, BE8F80, C89789, CA9084, D2978B, D69E93, D69D94, D89E9A
   Data DAA09B, D19796, B77D70, B28174, 110D08, 383122, 6A6357, 696557, 6B6557, 6B6557, 696355, 6A6456, 5E5F50, B1895F, 9B5915, B37333, A86E2B, B5793B, AB6D2E, A97031, 9E6629, A4672D, A16018, 8C6147, 996343, 9B6343, C08871, C38873, CD957C, C78F79
   Data D9A18D, D5A38D, A77A63, 946750, 9B6D58, B98979, C18E80, C48F7F, C68F82, C78E85, CB9285, C48B81, 9F6C60, 432A23, 13100A, 3E3324, 6A6756, 69655A, 6C6658, 666052, 6C6658, 6A6459, 5E5E55, 616151, BD8348, AC6E2D, A56420, B77E43, B77A3A, A36624
   Data A76B2D, 9A5715, 9E5C1F, 956243, 9F6849, AB6F54, C08468, C68C74, B77F66, D19980, D39C86, D09C86, CA9883, C3917B, B5826C, 9D735A, 93705A, 1A0800, 251507, 2D1A0E, 2F1E14, 1C0D04, 13110B, 140E0B, 120F0A, 2C2414, 665E51, 6A6255, 696355, 696355
   Data 686254, 6A6456, 5E5E4C, 5B614E, 4C442E, 9B6935, B06D2B, AE7034, A76B2E, AB6F30, 995E22, A76528, 9E6739, 9A6244, A0674B, AD745A, BC8368, BF866E, C48F77, BB866F, D29E85, D09B80, CC9781, C18E77, AD7C65, 865E46, 9A7864, 130904, 0F100A, 121008
   Data 100E09, 100F0A, 150F08, 131009, 120E0B, 231E0D, 645D4F, 6B6356, 6A6456, 666052, 6B6457, 6C6657, 5D604F, 5D6050, 565746, 33321F, 0E0A00, 402817, 9E683F, 9A632A, 955E2F, 7E4A29, 8A593A, 9D6645, A06B4D, A76E54, B37C63, B78365, BA8670, B68472
   Data B1826B, C7927D, C59075, BB866E, AD7F68, 7B533E, 785841, 0B0400, 0E0C06, 0D0E08, 0C0D07, 0E0F0A, 100F09, 11110A, 171209, 40382C, 696456, 696357, 676357, 696154, 6A6355, 6B6559, 5B5E4E, 5C5F4E, 5D5E4D, 4C4938, 1C1E11, 0C0F0B, 070B02, 36393C
   Data 7C6555, 704B31, 8A5739, 986242, 9D6747, A26F57, A5755F, AF8B7E, C0A69C, BBA299, A5806F, A17664, BF8C74, B58368, A5795F, 6C4631, 886956, 090200, 0E0D04, 121005, 110F04, 100E03, 110E02, 1B190A, 534A3C, 6B6355, 6C6558, 696357, 656556, 645F53
   Data 696559, 6C665A, 5A5E4D, 5B5E4C, 5B5E4D, 5C5E49, 5A5B4C, 2B2D1B, 151714, 77523A, 8C5B40, 7A513A, 8C5841, 935F44, 9A7867, E2DFE0, DBDADC, D2D5D5, D7DAD7, D7DBD7, D6D5D5, D2D0D2, E1DFD9, B2978C, 926B55, 7D563F, C6A198, 0B0300, 1A1509, 635C4F
   Data 6B6253, 6C6251, 6C6354, 696354, 6D6759, 6B6556, 696254, 6A6155, 696250, 66614F, 676251, 696355, 595B4E, 5A5C4F, 5A5D4E, 5B5D4E, 5C5E4D, 575949, BCB5AE, 96664E, 7F543E, 794E38, 8A583C, 9D867B, DDDEE2, CFD3D4, C8B9B0, AD8276, A37363, AA7262
   Data 986F5F, A08278, CABFC0, D7DCDA, D5D5D1, 725849, AA8978, 0C0100, 1C180D, 695D51, 6B6356, 6B6457, 6D6455, 6C6358, 6C6553, 6C6552, 6B6356, 6B6456, 676455, 645F51, 6A6157, 696254, 595B4B, 595D4B, 595E49, 5B5F4D, 5B5F4A, 5F5F5F, 785D42, 94674F
   Data 7D543D, 7B4C39, 7B4C3D, CCCBCE, E9E7E1, A77F72, B07C63, B08166, B78572, BFA49B, E2E0DB, E3DDD8, CFC3BE, BFB4B3, AA9B95, B2A19B, B0A29B, 3F2E22, 1F150A, 655E4C, 6A6252, 6C6154, 6A6153, 6A6053, 6A6151, 6A6151, 696154, 656153, 676050, 655F4F
   Data 636051, 645D4D, 323835, 333935, 333935, 343734, 363934, A29E9A, 916449, 90644B, 846048, 6F5043, C5CACA, 99715C, AD775D, B2816A, C2947B, C4A9A2, EAE6E5, A17E6F, AE7C65, AC785D, A57255, A46F53, AB7356, AB765A, A37154, 815540, 6A4E3D, 696155
   Data 6D6652, 706455, 6D6552, 6D6452, 6C6256, 6C6457, 6D6455, 6D6555, 6A6456, 676152, 6A6353, 686152
   For i = 1 to Datacount
      bmp$ = bmp$ + Mkl$(Val("&H"+Read$(i)))
   Next i
   Function = bmp$
End Function
 
'gbs_00470
'Date: 03-10-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm