LOADIMAGE: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Update examples 2 & 3 to showcase new features)
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 27: Line 27:


{{PageDescription}}
{{PageDescription}}
* Image file formats '''JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC, PNM, PCX, SVG and QOI''' are supported. A path can also be given.
* Image file formats '''JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC, PNM, PCX, SVG, ICO, CUR and QOI''' are supported. A path can also be given.
*The {{Parameter|mode&}} parameter can be 32, 33,256 or 257. Omit to use the current graphic screen settings.
*The {{Parameter|mode&}} parameter can be 32, 33, 256 or 257. Omit to use the current graphic screen settings.
*Mode 33 images are '''hardware''' accelerated and are created using [[_LOADIMAGE]] or [[_COPYIMAGE]] ('''version 1.000 and up''').
*Mode 33 images are '''hardware''' accelerated and are created using [[_LOADIMAGE]] or [[_COPYIMAGE]] ('''version 1.000 and up''').
*Mode 256 images are loaded using the QB64-PE master VGA palette. This is the same palette that is used for 256 color screens like [[SCREEN]] 13.
*Mode 256 images are loaded using the QB64-PE master VGA palette. This is the same palette that is used for 256 color screens like [[SCREEN]] 13.
Line 60: Line 60:
* In '''QB64-PE v3.6.0''' this function got a new optional parameter {{Parameter|requirements$}} and the ability to load image files from memory.
* In '''QB64-PE v3.6.0''' this function got a new optional parameter {{Parameter|requirements$}} and the ability to load image files from memory.
* SVG and QOI support was added in '''QB64-PE v3.9.0'''.
* SVG and QOI support was added in '''QB64-PE v3.9.0'''.
* Pixel scaler support was added in '''QB64-PE v3.9.0'''.  
* Pixel scaler support was added in '''QB64-PE v3.9.0'''.
* ICO and CUR support was added in '''QB64-PE v3.14.0'''.




Line 66: Line 67:
;Example 1: To display an image in 32-bit color using its resolution as a program screen.
;Example 1: To display an image in 32-bit color using its resolution as a program screen.
{{CodeStart}}
{{CodeStart}}
i& = {{Cl|_LOADIMAGE}}("mypic.jpg", 32)
i& = {{Cl|_LOADIMAGE}}({{Text|<nowiki>"mypic.jpg"</nowiki>|#FFB100}}, {{Text|32|#F580B1}})
{{Cl|SCREEN}} i&
{{Cl|SCREEN}} i&
{{CodeEnd}}
{{CodeEnd}}
Line 74: Line 75:
;Example 2: [[DRAW]]ing and rotating an image 360 degrees using Turn Angle. [[POINT]] is used to read the invisible image source.
;Example 2: [[DRAW]]ing and rotating an image 360 degrees using Turn Angle. [[POINT]] is used to read the invisible image source.
{{CodeStart}}
{{CodeStart}}
{{Cl|SCREEN}} {{Cl|_NEWIMAGE}}(800, 600, 32)
{{Cl|SCREEN}} {{Cl|_NEWIMAGE}}({{Text|800|#F580B1}}, {{Text|600|#F580B1}}, {{Text|32|#F580B1}})
img& = {{Cl|_LOADIMAGE}}("QB64.PNG")                           'use any 24/32 bit image
img& = {{Cl|_LOADIMAGE}}({{Text|<nowiki>"QB64.PNG"</nowiki>|#FFB100}}) {{Text|<nowiki>'use any 24/32 bit image</nowiki>|#919191}}


wide% = {{Cl|_WIDTH (function)|_WIDTH}}(img&): deep% = {{Cl|_HEIGHT}}(img&)
wide% = {{Cl|_WIDTH (function)|_WIDTH}}(img&): deep% = {{Cl|_HEIGHT}}(img&)
TLC$ = "BL" + {{Cl|STR$}}(wide% \ 2) + "BU" + {{Cl|STR$}}(deep% \ 2) 'start draw at top left corner
TLC$ = {{Text|<nowiki>"BL"</nowiki>|#FFB100}} + {{Cl|STR$}}(wide% \ {{Text|2|#F580B1}}) + {{Text|<nowiki>"BU"</nowiki>|#FFB100}} + {{Cl|STR$}}(deep% \ {{Text|2|#F580B1}}) {{Text|<nowiki>'start draw at top left corner</nowiki>|#919191}}
RET$ = "BD BL" + {{Cl|STR$}}(wide%)                           'return to left side of image
RET$ = {{Text|<nowiki>"BD BL"</nowiki>|#FFB100}} + {{Cl|STR$}}(wide%) {{Text|<nowiki>'return to left side of image</nowiki>|#919191}}
{{Cl|_SOURCE}} img&
{{Cl|_SOURCE}} img&
{{Cl|_DEST}} 0
{{Cl|_DEST}} {{Text|0|#F580B1}}
DO
{{Cl|DO}}
  {{Cl|FOR...NEXT|FOR}} angle% = 0 {{Cl|TO}} 360 {{Cl|STEP}} 15
    {{Cl|FOR}} angle% = {{Text|0|#F580B1}} {{Cl|TO}} {{Text|360|#F580B1}} {{Cl|STEP}} {{Text|15|#F580B1}}
    {{Cl|CLS}}
        {{Cl|CLS}}
    {{Cl|DRAW}} "BM400, 300" + "TA=" + {{Cl|VARPTR$}}(angle%) + TLC$
        {{Cl|DRAW}} {{Text|<nowiki>"BM400, 300"</nowiki>|#FFB100}} + {{Text|<nowiki>"TA="</nowiki>|#FFB100}} + {{Cl|VARPTR$}}(angle%) + TLC$
    {{Cl|FOR...NEXT|FOR}} y = 0 {{Cl|TO}} deep% - 1
        {{Cl|FOR}} y = {{Text|0|#F580B1}} {{Cl|TO}} deep% - {{Text|1|#F580B1}}
      {{Cl|FOR...NEXT|FOR}} x = 0 {{Cl|TO}} wide% - 1
            {{Cl|FOR}} x = {{Text|0|#F580B1}} {{Cl|TO}} wide% - {{Text|1|#F580B1}}
        {{Cl|DRAW}} "C" + {{Cl|STR$}}({{Cl|POINT}}(x, y)) + "R1"           'color and DRAW each pixel
                {{Cl|DRAW}} {{Text|<nowiki>"C"</nowiki>|#FFB100}} + {{Cl|STR$}}({{Cl|POINT}}(x, y)) + {{Text|<nowiki>"R1"</nowiki>|#FFB100}} {{Text|<nowiki>'color and DRAW each pixel</nowiki>|#919191}}
      {{Cl|NEXT}}
            {{Cl|NEXT}}
      {{Cl|DRAW}} RET$
            {{Cl|DRAW}} RET$
        {{Cl|NEXT}}
        {{Cl|_DISPLAY}} {{Text|<nowiki>'NOTE: CPU usage will be HIGH!</nowiki>|#919191}}
     {{Cl|NEXT}}
     {{Cl|NEXT}}
    {{Cl|_DISPLAY}}                        'NOTE: CPU usage will be HIGH!
{{Cl|DO...LOOP|LOOP UNTIL}} {{Cl|INKEY$}} > {{Text|<nowiki>""</nowiki>|#FFB100}}
  {{Cl|NEXT}}
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} > ""
{{CodeEnd}}
{{CodeEnd}}
{{Small|Code by Ted Weissgerber}}
{{Small|Code by Ted Weissgerber}}
Line 253: Line 254:


svg_data:
svg_data:
{{Cl|DATA}} {{Text|<nowiki>"<?xml version='1.0' encoding='UTF-8' ?><svg width='1000pt' height='1000pt' viewBox='0 0 1000 1000' version='1.1'"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"<svg xmlns='http://www.w3.org/2000/svg' width='1000pt' height='1000pt' viewBox='0 0 1000 1000'><g fill='#201701'"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" xmlns='http://www.w3.org/2000/svg'><g id='#20170121'><path fill='#201701' opacity='0.13' d=' M 106.96 93.79 C 1"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"><path d='M107 94c-3-1 2-4 2-1l-2 1ZM96 672h35l24 168 220-43 4 21-255 42-28-188ZM521 768l41-8 5 25c0 2-3 3-4 3l-"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"04.15 93.03 108.51 90.01 108.73 92.72 C 108.29 92.99 107.41 93.52 106.96 93.79 Z' /><path fill='#201701' opacity"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"36 6-6-26Z' opacity='.1'/></g><g fill='#020092'><path d='m107 94 2-1 683 134 76 328 2 7 23 101-176 35-3-5-24-104"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"='0.13' d=' M 95.83 672.05 C 107.63 671.85 119.43 672.04 131.22 671.71 C 139.42 727.72 147.68 783.74 155.45 839."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 108-11 14 65 59-9-40-168h-60l17 78-84 7-18-82c0-1 0-3-2-2h-21l-17-71 169 7-12-54-26-1c-5-16-8-32-11-49 9 1 17 3"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"81 C 228.65 825.83 301.68 810.94 374.89 796.94 C 376.25 803.91 377.72 810.86 378.82 817.88 C 293.95 832.31 208.9"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 26 3l-12-53-220-38 29 146c-25-3-50-9-74-14l-28-144-329-57 20 134c-15-1-30-5-46-8v-1L107 94Z'/><path d='m284 200"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"6 846.09 123.99 859.95 C 114.39 797.35 104.85 734.73 95.83 672.05 Z' /><path fill='#201701' opacity='0.13' d=' M"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 140 22 6 33-25-2c4 23 9 46 12 70l-116-23h-1l-16-100ZM640 255l90 13 7 34-85-11c-2 0-5 0-5-3l-7-33ZM137 300l46 8 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 521.05 768.20 C 534.58 765.42 548.14 762.73 561.72 760.16 C 562.95 768.56 565.81 776.63 566.98 785.04 C 567.43 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"10 69 31 1c3 28 9 56 13 85l80 5 8 2-120 1 3 22-43-2-28-191ZM305 330l77 13c2 0 4 2 4 4-26 0-53-3-79-4l-2-13ZM656 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"787.26 564.47 787.52 562.98 787.94 C 551.02 789.90 539.03 791.74 527.09 793.81 C 524.63 785.38 522.88 776.78 521"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"330l89 8 9 39-89-5-9-42ZM519 368c8-1 16 2 24 3l50 8 4 15c11 1 23 0 35 2l7 33-22-2 9 40h-16l9 44c-20-1-41-1-61-3-"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".05 768.20 Z' /></g><g id='#020092ff'><path fill='#020092' opacity='1.00' d=' M 106.96 93.79 C 107.41 93.52 108."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"6 0-12 0-18-2l31-1-3-17 38 3c-1-11-4-21-7-31-24-2-48-6-72-7l3 15-60 1c-5-27-12-54-15-81l59 3 6 28 72 9-5-27-63-9"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"29 92.99 108.73 92.72 C 336.34 137.82 564.13 182.21 791.76 227.19 C 817.05 336.43 842.81 445.56 868.11 554.80 C "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"-5-24ZM325 425l77 1 8 43-77 1c-3-15-7-30-8-45Z'/></g><path fill='#00bbfd' d='m158 142 329 57 28 144 4 25 5 24-10"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"868.62 557.35 869.19 559.88 869.87 562.39 C 878.00 595.95 885.78 629.60 893.49 663.25 C 834.46 674.50 775.55 686"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"-1-59-3-27-1 7 39h-33l-77-1-7-43-94-4-31-1-10-69-5-32-20-134m126 58 16 100h1c0 10 3 20 4 30l2 13c26 1 53 4 79 4l"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".43 716.55 697.87 C 715.74 696.15 714.88 694.44 714.33 692.63 C 706.05 658.24 698.55 623.65 689.93 589.34 C 726."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"36 3-5-27c-3-24-8-47-12-70l25 2-6-33-140-22Z'/><path fill='#037efe' d='m560 211 220 38 12 53c-9 0-17-2-26-3 3 17"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"01 585.53 762.08 581.64 798.16 577.87 C 802.63 599.61 808.04 621.15 812.43 642.90 C 831.94 640.28 851.28 636.51 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 6 33 11 49l26 1 12 54-169-7h-14c-12-2-24-1-35-2l-4-15-4-22-29-146m80 44 7 33c0 3 3 3 5 3l85 11-7-34-90-13m16 75"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"870.74 633.57 C 857.58 577.56 843.81 521.71 831.20 465.56 C 811.07 465.46 790.94 465.84 770.80 465.98 C 776.45 4"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 9 42 89 5-9-39-89-8Z'/><g fill='#070636'><path d='m71 256 61 11v1c2 11 4 21 4 32l-23-4 29 195c8 1 16-2 23 3l11 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"92.17 782.87 518.20 788.09 544.48 C 759.90 546.24 731.75 548.79 703.57 550.70 C 697.63 523.64 691.95 496.52 686."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"75h-24c7 38 12 76 17 114l16 106 22-4 2 13 446-88c5 2 10 0 14 0l35-6v-4l12-2c2 10 6 20 7 31a19145 19145 0 0 0-202"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"24 469.42 C 685.88 468.36 685.65 466.48 684.07 466.80 C 676.97 466.51 669.85 466.89 662.75 467.02 C 656.82 443.4"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 39l-146 29-220 43-24-168-37-255-23-161ZM868 555c2 2 2 5 2 7l-2-7Z' opacity='.4'/></g><g fill='#030173'><path d="</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"4 651.75 419.64 645.92 396.03 C 702.40 398.45 758.87 401.46 815.37 403.38 C 811.57 385.34 807.31 367.38 802.84 3"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"'M132 268c16 3 31 7 46 8l5 32-46-8h-1c0-11-2-21-4-32ZM301 300l116 23 5 27-36-3c0-2-2-4-4-4l-77-13c-1-10-4-20-4-3"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"49.49 C 794.05 349.00 785.31 347.90 776.52 347.53 C 772.46 331.59 768.99 315.50 765.53 299.43 C 774.51 300.25 78"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"0ZM515 343c24 5 49 11 74 14l4 22-50-8c-8-1-16-4-24-3l-4-25ZM224 378l94 4 7 43c1 15 5 30 8 45h-8l-8-2-80-5c-4-29-"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"3.40 301.81 792.39 302.49 C 788.94 284.70 784.17 267.20 780.48 249.46 C 706.88 236.49 633.33 223.26 559.66 210.7"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"10-57-13-85ZM428 387l27 1c3 27 10 54 15 81h-60l-8-43h33l-7-39ZM514 391l10 1 63 9 5 27-72-9-6-28ZM632 396h14l17 7"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"7 C 569.11 259.65 579.47 308.34 589.07 357.19 C 564.12 353.65 539.45 347.94 514.69 343.15 C 505.33 295.17 495.94"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"1h-37l-9-40 22 2-7-33ZM527 453c24 1 48 5 72 7 3 10 6 20 7 31l-38-3-4-20h-34l-3-15ZM165 491l43 2 37 243 359-59-22"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 247.21 486.83 199.18 C 377.19 179.64 267.44 160.57 157.70 141.55 C 164.44 186.45 171.33 231.33 177.95 276.25 C "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"-115c-79 5-157 12-236 18l-11-67 205-7c6 2 12 2 18 2 20 2 41 2 61 3l17 84 54-6 24 104 3 5h-1l-12 2-49 10-446 88-2"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"162.60 274.65 147.62 270.60 132.39 268.14 C 132.34 267.86 132.25 267.29 132.20 267.01 C 123.70 209.29 115.52 151"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"-13-31-216-11-75v-3Z'/><path d='m491 609 6-1 8 44-143 19-8-47 137-15Z'/></g><path fill='#013f59' d='m113 296 23 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".50 106.96 93.79 Z' /><path fill='#020092' opacity='1.00' d=' M 283.57 200.46 C 330.37 207.33 377.13 214.50 423."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"4h1l28 191v3c-7-5-15-2-23-3l-29-195Z' opacity='.4'/><path fill='#000314' d='M26 404c23 3 46 9 68 13l37 255H96l28"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"87 221.86 C 425.83 233.08 428.13 244.23 429.97 255.47 C 421.61 254.67 413.30 253.47 404.95 252.59 C 408.92 275.9"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 188 255-42-4-21 146-29 6 26 36-6c1 0 4-1 4-3l-5-25 11-2 11 50-23 5-441 86c-7 2-14 4-22 4L26 404Z' opacity='.1'/"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"4 413.79 299.15 417.42 322.56 C 378.33 315.91 339.58 307.18 300.55 300.13 L 299.94 300.03 C 294.61 266.82 288.66"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"><path fill='#f87d03' d='M771 466h60l40 168-59 9-14-65-108 11-54 6-17-84-9-44h74c2-1 2 1 2 2l18 82 84-7-17-78Z'/"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 233.70 283.57 200.46 Z' /><path fill='#020092' opacity='1.00' d=' M 639.80 254.69 C 669.80 258.62 699.63 263.89"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"><path fill='#febd04' d='m470 469 60-1h34l4 20 3 17-31 1-205 7 11 67c79-6 157-13 236-18l22 115-359 59-37-243-3-2"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 729.58 268.25 C 731.57 279.41 734.82 290.30 736.55 301.51 C 708.29 298.65 680.19 294.41 651.99 291.05 C 650.07 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"2 120-1h8l77-1h60m21 140-137 15 8 47 143-19-8-44-6 1Z'/><g fill='#5d470f'><path d='M152 569h24l31 216-22 4-16-10"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"290.67 646.84 290.96 646.71 288.28 C 644.49 277.06 641.65 265.97 639.80 254.69 Z' /><path fill='#020092' opacity"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"6c-5-38-10-76-17-114ZM655 710l49-10v4l-35 6c-4 0-9 2-14 0Z' opacity='.4'/></g></svg>"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"='1.00' d=' M 137.19 299.86 C 152.41 301.91 167.55 304.72 182.61 307.71 C 186.47 330.64 189.44 353.71 193.25 376"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".64 C 203.45 376.73 213.62 377.76 223.83 377.87 C 226.98 406.33 232.57 434.48 237.00 462.75 C 263.64 464.66 290."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"30 466.42 316.95 468.23 C 319.82 468.43 322.60 469.25 325.38 469.95 C 285.26 470.57 245.13 470.59 205.02 471.18 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"C 205.92 478.53 207.16 485.84 208.18 493.17 C 193.63 492.45 179.09 491.81 164.54 491.13 C 155.30 427.40 145.80 3"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"63.69 137.19 299.86 Z' /><path fill='#020092' opacity='1.00' d=' M 305.04 329.95 C 330.62 334.17 356.13 338.88 3"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"81.68 343.22 C 384.12 343.39 385.82 345.03 385.94 347.49 C 359.64 346.62 333.48 343.77 307.21 342.59 C 306.33 33"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"8.41 305.67 334.18 305.04 329.95 Z' /><path fill='#020092' opacity='1.00' d=' M 655.68 329.67 C 685.52 332.13 71"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"5.28 335.70 745.12 338.10 C 748.01 351.15 751.01 364.17 753.82 377.24 C 724.03 375.46 694.28 373.46 664.50 371.5"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"1 C 661.43 357.59 658.50 343.64 655.68 329.67 Z' /><path fill='#020092' opacity='1.00' d=' M 519.38 367.56 C 527"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".41 366.68 535.18 369.59 543.07 370.60 C 559.90 373.13 576.52 377.27 593.48 378.82 C 594.60 383.72 595.66 388.63"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 596.53 393.59 C 608.25 394.98 620.07 394.35 631.81 395.53 C 633.51 406.66 636.94 417.43 639.00 428.50 C 631.56 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"429.00 624.36 426.58 616.95 426.62 C 619.52 440.27 622.86 453.78 626.02 467.31 C 620.79 467.36 615.57 467.44 610"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".35 467.40 C 613.42 482.02 616.67 496.61 619.33 511.32 C 598.90 509.83 578.43 509.70 558.00 508.33 C 552.09 508."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"49 546.07 508.39 540.49 506.20 C 550.71 505.25 560.99 505.52 571.23 504.88 C 570.23 499.37 569.21 493.87 568.17 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"488.37 C 580.84 489.18 593.53 489.71 606.17 490.84 C 604.86 480.25 602.24 469.83 599.38 459.56 C 575.21 457.58 5"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"51.12 454.48 526.93 452.96 C 528.02 458.05 529.15 463.13 530.14 468.24 C 510.17 468.25 490.21 468.62 470.24 468."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"63 C 465.10 441.88 458.41 415.35 454.62 388.39 C 474.39 388.90 494.12 390.24 513.89 390.82 C 515.50 400.12 517.9"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"3 409.26 519.54 418.56 C 543.68 422.11 567.95 424.84 592.16 428.00 C 591.09 419.01 588.76 410.23 586.52 401.49 C"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 565.61 398.13 544.54 395.64 523.76 391.54 C 522.82 383.45 520.78 375.56 519.38 367.56 Z' /><path fill='#020092'"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" opacity='1.00' d=' M 324.73 424.74 C 350.47 424.78 376.21 425.51 401.94 426.00 C 404.12 440.54 407.23 454.95 41"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"0.30 469.33 C 384.61 469.57 358.91 469.64 333.23 469.96 C 329.62 455.06 326.39 440.00 324.73 424.74 Z' /></g><g "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"id='#00bbfdff'><path fill='#00bbfd' opacity='1.00' d=' M 157.70 141.55 C 267.44 160.57 377.19 179.64 486.83 199."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"18 C 495.94 247.21 505.33 295.17 514.69 343.15 C 516.39 351.26 517.75 359.43 519.38 367.56 C 520.78 375.56 522.8"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"2 383.45 523.76 391.54 C 520.48 391.09 517.18 390.95 513.89 390.82 C 494.12 390.24 474.39 388.90 454.62 388.39 C"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 445.78 387.51 436.88 387.63 428.02 387.22 C 430.24 400.30 433.11 413.27 435.06 426.40 C 424.02 426.45 412.98 42"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"6.35 401.94 426.00 C 376.21 425.51 350.47 424.78 324.73 424.74 C 322.36 410.54 319.90 396.34 317.83 382.09 C 286"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".51 380.50 255.15 379.59 223.83 377.87 C 213.62 377.76 203.45 376.73 193.25 376.64 C 189.44 353.71 186.47 330.64"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 182.61 307.71 C 181.21 297.20 179.55 286.73 177.95 276.25 C 171.33 231.33 164.44 186.45 157.70 141.55 M 283.57 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"200.46 C 288.66 233.70 294.61 266.82 299.94 300.03 L 300.55 300.13 C 301.22 310.16 303.60 320.01 305.04 329.95 C"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 305.67 334.18 306.33 338.41 307.21 342.59 C 333.48 343.77 359.64 346.62 385.94 347.49 C 397.99 349.47 410.34 34"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"8.78 422.47 350.29 C 421.27 340.97 419.38 331.74 417.42 322.56 C 413.79 299.15 408.92 275.94 404.95 252.59 C 413"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".30 253.47 421.61 254.67 429.97 255.47 C 428.13 244.23 425.83 233.08 423.87 221.86 C 377.13 214.50 330.37 207.33"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 283.57 200.46 Z' /></g><g id='#037efeff'><path fill='#037efe' opacity='1.00' d=' M 559.66 210.77 C 633.33 223.2"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"6 706.88 236.49 780.48 249.46 C 784.17 267.20 788.94 284.70 792.39 302.49 C 783.40 301.81 774.51 300.25 765.53 2"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"99.43 C 768.99 315.50 772.46 331.59 776.52 347.53 C 785.31 347.90 794.05 349.00 802.84 349.49 C 807.31 367.38 81"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"1.57 385.34 815.37 403.38 C 758.87 401.46 702.40 398.45 645.92 396.03 C 641.22 395.75 636.51 395.69 631.81 395.5"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"3 C 620.07 394.35 608.25 394.98 596.53 393.59 C 595.66 388.63 594.60 383.72 593.48 378.82 C 591.96 371.62 590.82"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 364.34 589.07 357.19 C 579.47 308.34 569.11 259.65 559.66 210.77 M 639.80 254.69 C 641.65 265.97 644.49 277.06 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"646.71 288.28 C 646.84 290.96 650.07 290.67 651.99 291.05 C 680.19 294.41 708.29 298.65 736.55 301.51 C 734.82 2"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"90.30 731.57 279.41 729.58 268.25 C 699.63 263.89 669.80 258.62 639.80 254.69 M 655.68 329.67 C 658.50 343.64 66"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"1.43 357.59 664.50 371.51 C 694.28 373.46 724.03 375.46 753.82 377.24 C 751.01 364.17 748.01 351.15 745.12 338.1"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"0 C 715.28 335.70 685.52 332.13 655.68 329.67 Z' /></g><g id='#07063664'><path fill='#070636' opacity='0.39' d='"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" M 71.29 255.81 C 91.75 258.62 111.74 264.36 132.20 267.01 C 132.25 267.29 132.34 267.86 132.39 268.14 C 133.72 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"278.69 135.54 289.18 136.45 299.79 C 128.64 299.02 120.99 297.19 113.23 296.07 C 123.23 360.99 133.01 425.96 142"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".23 491.00 C 149.72 492.31 158.20 489.46 164.97 493.55 C 168.25 518.72 172.05 543.84 175.69 568.97 C 167.85 569."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"55 159.99 569.07 152.15 569.36 C 158.55 607.12 163.99 645.06 169.26 683.00 C 174.39 718.40 180.23 753.69 185.06 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"789.13 C 192.48 788.35 199.88 787.27 207.13 785.49 C 207.66 789.50 208.15 793.52 208.66 797.55 C 357.65 768.80 5"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"06.40 738.72 655.43 710.15 C 659.89 711.72 664.56 710.47 669.06 709.73 C 680.61 707.76 692.18 705.88 703.74 703."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"95 C 703.73 703.08 703.71 701.32 703.70 700.44 C 707.91 699.66 712.09 698.66 716.31 697.92 C 718.13 708.23 721.5"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"8 718.20 722.99 728.60 C 672.87 738.14 622.82 748.08 572.78 758.02 C 569.11 758.83 565.42 759.54 561.72 760.16 C"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 548.14 762.73 534.58 765.42 521.05 768.20 C 472.34 777.86 423.61 787.37 374.89 796.94 C 301.68 810.94 228.65 82"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"5.83 155.45 839.81 C 147.68 783.74 139.42 727.72 131.22 671.71 C 118.83 586.83 106.51 501.94 94.36 417.01 C 87.0"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"5 363.24 78.74 309.58 71.29 255.81 Z' /><path fill='#070636' opacity='0.39' d=' M 868.11 554.80 C 869.53 557.08 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"869.90 559.74 869.87 562.39 C 869.19 559.88 868.62 557.35 868.11 554.80 Z' /></g><g id='#030173ff'><path fill='#"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"030173' opacity='1.00' d=' M 132.39 268.14 C 147.62 270.60 162.60 274.65 177.95 276.25 C 179.55 286.73 181.21 29"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"7.20 182.61 307.71 C 167.55 304.72 152.41 301.91 137.19 299.86 L 136.45 299.79 C 135.54 289.18 133.72 278.69 132"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".39 268.14 Z' /><path fill='#030173' opacity='1.00' d=' M 300.55 300.13 C 339.58 307.18 378.33 315.91 417.42 322"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".56 C 419.38 331.74 421.27 340.97 422.47 350.29 C 410.34 348.78 397.99 349.47 385.94 347.49 C 385.82 345.03 384."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"12 343.39 381.68 343.22 C 356.13 338.88 330.62 334.17 305.04 329.95 C 303.60 320.01 301.22 310.16 300.55 300.13 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"Z' /><path fill='#030173' opacity='1.00' d=' M 514.69 343.15 C 539.45 347.94 564.12 353.65 589.07 357.19 C 590.8"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"2 364.34 591.96 371.62 593.48 378.82 C 576.52 377.27 559.90 373.13 543.07 370.60 C 535.18 369.59 527.41 366.68 5"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"19.38 367.56 C 517.75 359.43 516.39 351.26 514.69 343.15 Z' /><path fill='#030173' opacity='1.00' d=' M 223.83 3"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"77.87 C 255.15 379.59 286.51 380.50 317.83 382.09 C 319.90 396.34 322.36 410.54 324.73 424.74 C 326.39 440.00 32"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"9.62 455.06 333.23 469.96 C 330.61 470.03 327.99 470.04 325.38 469.95 C 322.60 469.25 319.82 468.43 316.95 468.2"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"3 C 290.30 466.42 263.64 464.66 237.00 462.75 C 232.57 434.48 226.98 406.33 223.83 377.87 Z' /><path fill='#0301"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"73' opacity='1.00' d=' M 428.02 387.22 C 436.88 387.63 445.78 387.51 454.62 388.39 C 458.41 415.35 465.10 441.88"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 470.24 468.63 C 450.26 468.99 430.28 469.12 410.30 469.33 C 407.23 454.95 404.12 440.54 401.94 426.00 C 412.98 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"426.35 424.02 426.45 435.06 426.40 C 433.11 413.27 430.24 400.30 428.02 387.22 Z' /><path fill='#030173' opacity"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"='1.00' d=' M 513.89 390.82 C 517.18 390.95 520.48 391.09 523.76 391.54 C 544.54 395.64 565.61 398.13 586.52 401"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".49 C 588.76 410.23 591.09 419.01 592.16 428.00 C 567.95 424.84 543.68 422.11 519.54 418.56 C 517.93 409.26 515."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"50 400.12 513.89 390.82 Z' /><path fill='#030173' opacity='1.00' d=' M 631.81 395.53 C 636.51 395.69 641.22 395."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"75 645.92 396.03 C 651.75 419.64 656.82 443.44 662.75 467.02 C 650.51 467.25 638.26 467.09 626.02 467.31 C 622.8"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"6 453.78 619.52 440.27 616.95 426.62 C 624.36 426.58 631.56 429.00 639.00 428.50 C 636.94 417.43 633.51 406.66 6"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"31.81 395.53 Z' /><path fill='#030173' opacity='1.00' d=' M 526.93 452.96 C 551.12 454.48 575.21 457.58 599.38 4"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"59.56 C 602.24 469.83 604.86 480.25 606.17 490.84 C 593.53 489.71 580.84 489.18 568.17 488.37 C 566.81 481.54 56"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"5.39 474.73 564.15 467.88 C 552.81 467.76 541.48 468.31 530.14 468.24 C 529.15 463.13 528.02 458.05 526.93 452.9"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"6 Z' /><path fill='#030173' opacity='1.00' d=' M 164.54 491.13 C 179.09 491.81 193.63 492.45 208.18 493.17 C 220"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".62 574.19 232.20 655.34 244.88 736.31 C 364.76 716.81 484.55 696.79 604.42 677.24 C 597.17 638.73 589.27 600.34"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 581.85 561.85 C 503.33 567.41 424.89 574.31 346.38 579.86 C 343.09 557.68 338.91 535.64 335.49 513.47 C 403.82 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"511.01 472.15 508.27 540.49 506.20 C 546.07 508.39 552.09 508.49 558.00 508.33 C 578.43 509.70 598.90 509.83 619"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".33 511.32 C 624.96 539.15 630.91 566.92 636.22 594.82 C 654.16 593.42 672.03 591.20 689.93 589.34 C 698.55 623."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"65 706.05 658.24 714.33 692.63 C 714.88 694.44 715.74 696.15 716.55 697.87 L 716.31 697.92 C 712.09 698.66 707.9"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"1 699.66 703.70 700.44 C 687.57 703.45 671.37 706.23 655.43 710.15 C 506.40 738.72 357.65 768.80 208.66 797.55 C"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 208.15 793.52 207.66 789.50 207.13 785.49 C 196.62 713.31 186.29 641.13 175.69 568.97 C 172.05 543.84 168.25 51"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"8.72 164.97 493.55 C 164.86 492.95 164.65 491.74 164.54 491.13 Z' /><path fill='#030173' opacity='1.00' d=' M 49"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"1.14 609.06 C 493.10 608.85 495.06 608.66 497.03 608.49 C 499.31 623.04 502.81 637.37 504.76 651.98 C 457.05 658"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".09 409.45 665.07 361.75 671.24 C 359.06 655.39 356.39 639.54 353.85 623.66 C 399.57 618.48 445.38 613.96 491.14"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 609.06 Z' /></g><g id='#013f595d'><path fill='#013f59' opacity='0.36' d=' M 113.23 296.07 C 120.99 297.19 128.6"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"4 299.02 136.45 299.79 L 137.19 299.86 C 145.80 363.69 155.30 427.40 164.54 491.13 C 164.65 491.74 164.86 492.95"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 164.97 493.55 C 158.20 489.46 149.72 492.31 142.23 491.00 C 133.01 425.96 123.23 360.99 113.23 296.07 Z' /></g>"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"<g id='#00031421'><path fill='#000314' opacity='0.13' d=' M 26.27 404.22 C 49.11 407.31 71.67 412.76 94.36 417.0"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"1 C 106.51 501.94 118.83 586.83 131.22 671.71 C 119.43 672.04 107.63 671.85 95.83 672.05 C 104.85 734.73 114.39 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"797.35 123.99 859.95 C 208.96 846.09 293.95 832.31 378.82 817.88 C 377.72 810.86 376.25 803.91 374.89 796.94 C 4"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"23.61 787.37 472.34 777.86 521.05 768.20 C 522.88 776.78 524.63 785.38 527.09 793.81 C 539.03 791.74 551.02 789."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"90 562.98 787.94 C 564.47 787.52 567.43 787.26 566.98 785.04 C 565.81 776.63 562.95 768.56 561.72 760.16 C 565.4"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"2 759.54 569.11 758.83 572.78 758.02 C 575.64 774.80 580.61 791.17 583.86 807.90 C 576.28 809.90 568.52 811.06 5"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"60.86 812.70 C 413.96 841.53 267.05 870.38 120.15 899.24 C 112.85 900.50 105.69 902.60 98.27 903.07 C 74.21 736."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"80 50.05 570.54 26.27 404.22 Z' /></g><g id='#f87d03ff'><path fill='#f87d03' opacity='1.00' d=' M 770.80 465.98 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"C 790.94 465.84 811.07 465.46 831.20 465.56 C 843.81 521.71 857.58 577.56 870.74 633.57 C 851.28 636.51 831.94 6"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"40.28 812.43 642.90 C 808.04 621.15 802.63 599.61 798.16 577.87 C 762.08 581.64 726.01 585.53 689.93 589.34 C 67"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"2.03 591.20 654.16 593.42 636.22 594.82 C 630.91 566.92 624.96 539.15 619.33 511.32 C 616.67 496.61 613.42 482.0"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"2 610.35 467.40 C 615.57 467.44 620.79 467.36 626.02 467.31 C 638.26 467.09 650.51 467.25 662.75 467.02 C 669.85"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 466.89 676.97 466.51 684.07 466.80 C 685.65 466.48 685.88 468.36 686.24 469.42 C 691.95 496.52 697.63 523.64 70"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"3.57 550.70 C 731.75 548.79 759.90 546.24 788.09 544.48 C 782.87 518.20 776.45 492.17 770.80 465.98 Z' /></g><g "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"id='#febd04ff'><path fill='#febd04' opacity='1.00' d=' M 470.24 468.63 C 490.21 468.62 510.17 468.25 530.14 468."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"24 C 541.48 468.31 552.81 467.76 564.15 467.88 C 565.39 474.73 566.81 481.54 568.17 488.37 C 569.21 493.87 570.2"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"3 499.37 571.23 504.88 C 560.99 505.52 550.71 505.25 540.49 506.20 C 472.15 508.27 403.82 511.01 335.49 513.47 C"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 338.91 535.64 343.09 557.68 346.38 579.86 C 424.89 574.31 503.33 567.41 581.85 561.85 C 589.27 600.34 597.17 63"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"8.73 604.42 677.24 C 484.55 696.79 364.76 716.81 244.88 736.31 C 232.20 655.34 220.62 574.19 208.18 493.17 C 207"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".16 485.84 205.92 478.53 205.02 471.18 C 245.13 470.59 285.26 470.57 325.38 469.95 C 327.99 470.04 330.61 470.03"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>" 333.23 469.96 C 358.91 469.64 384.61 469.57 410.30 469.33 C 430.28 469.12 450.26 468.99 470.24 468.63 M 491.14 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"609.06 C 445.38 613.96 399.57 618.48 353.85 623.66 C 356.39 639.54 359.06 655.39 361.75 671.24 C 409.45 665.07 4"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"57.05 658.09 504.76 651.98 C 502.81 637.37 499.31 623.04 497.03 608.49 C 495.06 608.66 493.10 608.85 491.14 609."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"06 Z' /></g><g id='#5d470f6b'><path fill='#5d470f' opacity='0.42' d=' M 152.15 569.36 C 159.99 569.07 167.85 569"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>".55 175.69 568.97 C 186.29 641.13 196.62 713.31 207.13 785.49 C 199.88 787.27 192.48 788.35 185.06 789.13 C 180."</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"23 753.69 174.39 718.40 169.26 683.00 C 163.99 645.06 158.55 607.12 152.15 569.36 Z' /><path fill='#5d470f' opac"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"ity='0.42' d=' M 655.43 710.15 C 671.37 706.23 687.57 703.45 703.70 700.44 C 703.71 701.32 703.73 703.08 703.74 "</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>"703.95 C 692.18 705.88 680.61 707.76 669.06 709.73 C 664.56 710.47 659.89 711.72 655.43 710.15 Z'/></g></svg>"</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>""</nowiki>|#FFB100}}
{{Cl|DATA}} {{Text|<nowiki>""</nowiki>|#FFB100}}
{{CodeEnd}}
{{CodeEnd}}
=== More examples ===
*[[Program ScreenShots]]
*[[ThirtyTwoBit SUB]]




{{PageSeeAlso}}
{{PageSeeAlso}}
*[[_FREEIMAGE]], [[_ICON]]
* [[_FREEIMAGE]]
*[[_PUTIMAGE]], [[_MAPTRIANGLE]]
* [[_PUTIMAGE]], [[_MAPTRIANGLE]]
*[[_NEWIMAGE]], [[_COPYIMAGE]]
* [[_NEWIMAGE]], [[_COPYIMAGE]]
*[[_PRINTIMAGE]] (printer)
* [[_PRINTIMAGE]] (printer)
*[[_PALETTECOLOR (function)]], [[_COPYPALETTE]], [[_ICON]]
* [[_PALETTECOLOR (function)]], [[_COPYPALETTE]], [[_ICON]]
*[[SCREEN]]
* [[SCREEN]]
*[[_SAVEIMAGE]]
* [[_SAVEIMAGE]]
*[[Hardware images]]
* [[Hardware images]]
*[[Bitmaps]], [[Icons and Cursors]], [[GIF Images]]
* [[Bitmaps]], [[Icons and Cursors]], [[GIF Images]]




{{PageNavigation}}
{{PageNavigation}}

Latest revision as of 17:05, 21 July 2024

The _LOADIMAGE function loads an image into memory and returns valid LONG image handle values that are less than -1.


Syntax

handle& = _LOADIMAGE(fileName$[, [mode&][, requirements$]])


Parameters

  • filename$ is literal or variable STRING file name value.
  • Optional mode& LONG values can be:
    • 32 = 32-bit image.
    • 33 = 32-bit hardware image.
    • 256 = 8-bit (256 color) image using the QB64-PE master palette.
    • 257 = 8-bit (256 color) image using an adaptive palette.
  • Optional requirements$ STRING values can be a combination of (version 3.6.0 and up):
    • HARDWARE: Loads the image as a 32-bit hardware image. This can be used instead of mode 33 (above).
    • ADAPTIVE: Loads the image as an 8-bit (256 color) image using an adaptive palette. This can be used instead of mode 257 (above).
    • MEMORY: This will treat filename$ as a memory buffer containing the image file instead of a file name.
    • SXBR2: Applies the Super-xBR 2x pixel scaler on the image.
    • MMPX2: Applies the MMPX Style-Preserving 2x pixel scaler on the image.
    • HQ2XA: Applies the High Quality Cartoon 2x pixel scaler on the image.
    • HQ2XB: Applies the High Quality Complex 2x pixel scaler on the image.
    • HQ3XA: Applies the High Quality Cartoon 3x pixel scaler on the image.
    • HQ3XB: Applies the High Quality Complex 3x pixel scaler on the image.


Description

  • Image file formats JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC, PNM, PCX, SVG, ICO, CUR and QOI are supported. A path can also be given.
  • The mode& parameter can be 32, 33, 256 or 257. Omit to use the current graphic screen settings.
  • Mode 33 images are hardware accelerated and are created using _LOADIMAGE or _COPYIMAGE (version 1.000 and up).
  • Mode 256 images are loaded using the QB64-PE master VGA palette. This is the same palette that is used for 256 color screens like SCREEN 13.
  • Mode 257 images are loaded using an adaptive palette making these images look better than mode 256 when used with 32-bit color screens (version 3.1.0 and up).
  • Loaded images can be read invisibly using POINT. Image coordinates start at 0 up to the _WIDTH - 1 and _HEIGHT - 1.
  • Images can be made into a program SCREEN or page adopting the size and palette settings or placed using _PUTIMAGE.
  • Returns -1 as an invalid handle if it can't load the image. Valid LONG handle returns are less than -1 (handle& < -1).
  • Valid images only need to be loaded once. The handle can be used repeatedly until freed.
  • Images are not deallocated when the SUB or FUNCTION they are created in ends. Free them with _FREEIMAGE.
  • Use the various pixel scalers to scale and load extremely low resolution (retro) graphics without blurring.

Errors

  • Some picture file images may not load when a mode& value is designated. Try loading it without a mode& designation.
  • It is important to free unused or discarded images with _FREEIMAGE to prevent CPU memory overflow errors.
  • In text-only SCREEN 0, mode& 32 must be specified. When loading an _ICON image use 32 for the mode& too.


Availability

  • Mode 33 was added in QB64 v1.0, which makes it also available in all QB64-PE versions.
  • Mode 257 was added in QB64-PE v3.1.0, hence it's not available in the original QB64 versions.
  • In QB64-PE v3.6.0 this function got a new optional parameter requirements$ and the ability to load image files from memory.
  • SVG and QOI support was added in QB64-PE v3.9.0.
  • Pixel scaler support was added in QB64-PE v3.9.0.
  • ICO and CUR support was added in QB64-PE v3.14.0.


Examples

Example 1
To display an image in 32-bit color using its resolution as a program screen.
i& = _LOADIMAGE("mypic.jpg", 32)
SCREEN i&

Example 2
DRAWing and rotating an image 360 degrees using Turn Angle. POINT is used to read the invisible image source.
SCREEN _NEWIMAGE(800, 600, 32)
img& = _LOADIMAGE("QB64.PNG") 'use any 24/32 bit image

wide% = _WIDTH(img&): deep% = _HEIGHT(img&)
TLC$ = "BL" + STR$(wide% \ 2) + "BU" + STR$(deep% \ 2) 'start draw at top left corner
RET$ = "BD BL" + STR$(wide%) 'return to left side of image
_SOURCE img&
_DEST 0
DO
    FOR angle% = 0 TO 360 STEP 15
        CLS
        DRAW "BM400, 300" + "TA=" + VARPTR$(angle%) + TLC$
        FOR y = 0 TO deep% - 1
            FOR x = 0 TO wide% - 1
                DRAW "C" + STR$(POINT(x, y)) + "R1" 'color and DRAW each pixel
            NEXT
            DRAW RET$
        NEXT
        _DISPLAY 'NOTE: CPU usage will be HIGH!
    NEXT
LOOP UNTIL INKEY$ > ""
Code by Ted Weissgerber

Example 3
Load and scale an image from memory and display it on the screen.
OPTION _EXPLICIT

DIM Bee& '                                               the image file
DIM cx%, cy% '                                           center x,y coordinate for image

RESTORE Data_tbee0_png_2314
Bee& = _LOADIMAGE(LoadResource, 32, "memory, hq3xa") '   load image file from memory and scale it using a pixel scaler
SCREEN _NEWIMAGE(640, 480, 32) '                         enter a graphics screen
CLS , _RGB32(127, 127, 127) '                            clear the screen with gray
LOCATE 2, 15 '                                           position text cursor
PRINT "An image loaded into memory and placed on the screen."
cx% = (640 - _WIDTH(Bee&)) \ 2 '                         calculate x center position
cy% = (480 - _HEIGHT(Bee&)) \ 2 '                        calculate y center position
_PUTIMAGE (cx%, cy%), Bee& '                             place image onto center of screen
SLEEP '                                                  wait for key stroke
_FREEIMAGE Bee& '                                        remove image from memory
SYSTEM '                                                 return to OS


Data_tbee0_png_2314:
DATA 2314,2988,-1
DATA eJx1VmdUU9kWDiihKDGEariKEKzUoV4FHWMgCYj0iVIVKeIocgNKiSCIkQuEZGBQRARxgCdNLNRQFYgE
DATA pGMARYOSCCqiSAkgUia8f28t3zrfPvtb31lnn732+bF3oqM9SV4OK4dAIORtyFbOYg+vmwxSvFt+tF0/
DATA QJ4+SrJCrK2vew0FaWJFFiK7hSIQKM66SdzUQakjEDLFNlZ414jhr3wPO6XjAPJ7V4D6yajg4eHaeQx/
DATA 7iqd7Pt2sNckOvBk8pNWtXNM5hOOmguzyMk3YSFCVqEeaS25T0YyLjYpFk23flFcKIp3biLzZgI1jjUe
DATA yriNaumc9Oye7DTKab9l/cprfEaYtZZ121hdEn1arRTCGXKa0NIEYDP1f0nLr0Qx+aVINfylyEl101GU
DATA w9uirxhQ0dLryI+G/ZemdqAEO1Al7V1d1hcu6C/zPjBovyt8IQIc/DpY4Qlp2/JEw12huF5G4dIR3owi
DATA CUu1ynOSlUDYLR7AMuNAyRAlDJOowCSObfNDwjM1trp4sFhhnrhQq0Ot/qKLPPCCWpe3uXr4aOp5PXxZ
DATA 5UZfnM1b9kUlb0FK2MMQWOdqYZ7Isu6wlYBN/bynlfj3TFXDgHfSm23+7JeR2PC6boF3+E5L7jR7TXL7
DATA /IAAPxW5PBCNKoIqstpJwbM+2lhGLx9CD33Z1PtHOCLb9Of7+XjKpCvisINvav3sf3KKfPbEjLw8of10
DATA EIW26HjrVr7F65I01NCI4MtLpwbqHhGHEEdySBRecVDePneX29LobvntaWzFezUsm15QnWmYUS+TCh7o
DATA nsJfHtBnX+KdohNKRI5rnShUnchaLF3MerchFUSmqU7PURTjkfp4kDV6+fhvJtDWMCrC8HpeaYi0u05V
DATA kx5wkGkdwuPHY+BaC6en3fJAqfKbXkrNhgAI8ZgpnLI4bhg1tQ8QRqy+xxK/VTftRZXrwfS8MbtDD28E
DATA WxczDVaOVireEMV5f/WhE3R21aIjXycPCm1/UMTJw8qAvTtKltu2YmYZA8lXQfURPNlHVE/9N3Hj/ccg
DATA dZiCnzBjiSnbs0rKWxgxXaiYDiWjwpocwExbM4GgXR4yCrsHtwSi7bbAab8xGbvN7xX54Zbpvhcfb7oP
DATA 1Uf1b+gDHwwCNBCbNJS3ujgFGbXlSx3ZFKuitPuap4gbQyJM0xKeaeaOOwojfuRLx4Pe8qJmeSBXnBSJ
DATA /6Sy8GAZUgsi96xVhzwEGg5wUKxh3DnH8PN6VgIob2z9xqN42j+JQlH5IT8M64tIqnB/BXbgemQmuZOn
DATA 5o67R4PZASPHE3NrDbeYwhQhLRpPHI1YebBFCCXLL+AUqTe+eSZPNFu6bvO8HiqlwySacJUf2kOFXAse
DATA 2K38wGqg6Y9C/U7C5+7nWxN9z7PX+ONYdZvmICD3HKvW95zEKUlW0gYdKGwt5CU4Yn87qdrlvpaSXPvJ
DATA krVgFe7rlQ4n6qnnGwEEXQiVjDsK1NRttPTA/oEQMmg/5RU/c/CoU9VlWdtw/dairwzHsiBN+w8Gh6cH
DATA f8ywzK4RaBfEDEx9itj5RkXAm7few69R86+7dS+qxzlrpM5OlXS/Crja8s+AfEZi2U0ZJZZd6f7kWmUc
DATA MKFP7H6zsNrDwW2p0XmS1MK8sDPIlHSARcniAbc6qmSC9lfEt7mMOqo8Fpf4LH/5RGggKzSZqR09FIIm
DATA LbmznqRqO6NynmInsl35SRf9bxmlkjmuDQqJgd4ef9Z5nN3jPWUBTDQZuJzxJ0nXfTBv/xCnhMBEGnOt
DATA y0W9beM1qbKPKuMI/JBFCXiO9Cjc/nm/CLCnkk1JuU/azPXgvqLIBpcf3tVAYquWpimp2EVUZaB4Q+64
DATA hR5MBigeLPGb21EF/KS2dEKzT+WYo2rm2Zpni+LPrb8y+FEWVQeX0aSKtqN0pM5e8hlhswdCMpo0v6qf
DATA 9IzW10vW8EDhAJrq7KfswtmZwJ3KKIUdnjnVWnr5d0xhL2ACb2gMZm2Oq7lKcAtNQKYO2hxz7tAszRri
DATA J71MwGpWMnB9J7SrgbTTrXfUwcm7EQxiXoKVVvphcs/CEucOhpufifqsCoxCr1xv5X5zbx59HAzZvagp
DATA 874bkRZWhYFv0lt8fhyst5w2K9rtfLkv5NX+YzkTSo2qeqQdAa8ZHM2Vjvb2pqz9oSlpadcmJ8/7+ftr
DATA qjCY6pPYgybqeXCAMBJvdlfVr+PRyplFB+2ZgNyYoM2J9bc/LYk2Vawtb3VX6To8u/y5cG3UlxdlHtT8
DATA /oSuCoFCUSkrLx97p/EXd2xBORHnWH0KbWqquf0v35H6yASuMB4c8fT6pEYaM9fIXS5ZcBGkpJN4PPqz
DATA kZwWXZSO8esKOds+sFOlwr0jSEU6eESSngxlSPiYdHQFAZSAV0U5vvRr4fNOVTsqf9p1lZkzCH4Smfvs
DATA 010OdjSWh2kslzkYCeYJlKli3NInTmcfQ/0LHogzL8a23inZxL20l8a3fZfpxq7Rj280LU9Z/Oo11D/d
DATA 8THQa2bvw2WTDcdmC/JGuQ6OP1dMXGN+KuxrXH1mhBb8t5es47u5nI66V20ALhvkhZ4p1TWm5m+Fb59l
DATA En83Ni5MnxBxRl2AiRL2jRj+C1Lp1NHwzSY018ZH2R4EBbjFw8GjhntrcLYBu7GcxvUtHYTBje8Na+/c
DATA GwJvDGVjYOmM5LDYgbi58Vo15Opiv7NTMQwOlE371lseqhdhSLu2V2GkqXYXAErPiyUJ0n0tTZQgIwrs
DATA vFIW9wa0MjCmgov0XSVDl05s+2xivHT24xKmYVpN8B0ND7YV0uiuP/YwY/dpVBJtS4H7GBgWXU/rcaMO
DATA 0/JDoxNaFs+f25NGTThR8EyYcqjUjdMamtQsk5jgPzu72+WnCrEXWlQgt7JS7JGALjna/dWf0VHxfQtG
DATA 0YcZIKBUQIE2+t+RQsI3O2SzPVdJgEQxPk4OlwLOxeYveaOrXXb8smk3/Z+JgAC8lUkOW93AGx2tePu3
DATA 9ax4lEHYWNtbPTxyKu5fF0s/3Q==

' Convert a base64 string to a normal string
FUNCTION DecodeBase64$ (s AS STRING)
    CONST BASE64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

    DIM AS STRING buffer, result
    DIM AS _UNSIGNED LONG i
    DIM AS _UNSIGNED _BYTE char1, char2, char3, char4

    FOR i = 1 TO LEN(s) STEP 4
        char1 = INSTR(BASE64_CHARACTERS, CHR$(ASC(s, i))) - 1
        char2 = INSTR(BASE64_CHARACTERS, CHR$(ASC(s, i + 1))) - 1
        char3 = INSTR(BASE64_CHARACTERS, CHR$(ASC(s, i + 2))) - 1
        char4 = INSTR(BASE64_CHARACTERS, CHR$(ASC(s, i + 3))) - 1
        buffer = CHR$(_SHL(char1, 2) OR _SHR(char2, 4)) + CHR$(_SHL(char2 AND 15, 4) OR _SHR(char3, 2)) + CHR$(_SHL(char3 AND 3, 6) OR char4)

        result = result + buffer
    NEXT

    ' Remove padding
    IF RIGHT$(s, 2) = "==" THEN
        result = LEFT$(result, LEN(result) - 2)
    ELSEIF RIGHT$(s, 1) = "=" THEN
        result = LEFT$(result, LEN(result) - 1)
    END IF

    DecodeBase64 = result
END FUNCTION


' Loads a binary file encoded with Bin2Data
' Usage:
'   1. Encode the binary file with Bin2Data
'   2. Include the file or it's contents
'   3. Load the file like so:
'       Restore label_generated_by_bin2data
'       Dim buffer As String
'       buffer = LoadResource   ' buffer will now hold the contents of the file
FUNCTION LoadResource$
    DIM AS _UNSIGNED LONG ogSize, resize
    DIM AS _BYTE isCompressed

    READ ogSize, resize, isCompressed ' read the header

    DIM AS STRING buffer, result

    ' Read the whole resource data
    DO WHILE LEN(result) < resize
        READ buffer
        result = result + buffer
    LOOP

    ' Decode the data
    buffer = DecodeBase64(result)

    ' Expand the data if needed
    IF isCompressed THEN
        result = _INFLATE$(buffer, ogSize)
    ELSE
        result = buffer
    END IF

    LoadResource = result
END FUNCTION
Adapted from example code by Terry Ritchie

Example 4
Load SVG vector graphics data from memory and display it on the screen.
OPTION _EXPLICIT
$RESIZE:SMOOTH

RESTORE svg_data

DIM AS STRING svg, buffer

DO
    READ buffer
    svg = svg + buffer
LOOP WHILE LEN(buffer) > 0

DIM img AS LONG: img = _LOADIMAGE(svg, 32, "memory")

SCREEN _NEWIMAGE(_WIDTH(img) \ 2, _HEIGHT(img) \ 2, 32)

_PUTIMAGE , img

END

svg_data:
DATA "<svg xmlns='http://www.w3.org/2000/svg' width='1000pt' height='1000pt' viewBox='0 0 1000 1000'><g fill='#201701'"
DATA "><path d='M107 94c-3-1 2-4 2-1l-2 1ZM96 672h35l24 168 220-43 4 21-255 42-28-188ZM521 768l41-8 5 25c0 2-3 3-4 3l-"
DATA "36 6-6-26Z' opacity='.1'/></g><g fill='#020092'><path d='m107 94 2-1 683 134 76 328 2 7 23 101-176 35-3-5-24-104"
DATA " 108-11 14 65 59-9-40-168h-60l17 78-84 7-18-82c0-1 0-3-2-2h-21l-17-71 169 7-12-54-26-1c-5-16-8-32-11-49 9 1 17 3"
DATA " 26 3l-12-53-220-38 29 146c-25-3-50-9-74-14l-28-144-329-57 20 134c-15-1-30-5-46-8v-1L107 94Z'/><path d='m284 200"
DATA " 140 22 6 33-25-2c4 23 9 46 12 70l-116-23h-1l-16-100ZM640 255l90 13 7 34-85-11c-2 0-5 0-5-3l-7-33ZM137 300l46 8 "
DATA "10 69 31 1c3 28 9 56 13 85l80 5 8 2-120 1 3 22-43-2-28-191ZM305 330l77 13c2 0 4 2 4 4-26 0-53-3-79-4l-2-13ZM656 "
DATA "330l89 8 9 39-89-5-9-42ZM519 368c8-1 16 2 24 3l50 8 4 15c11 1 23 0 35 2l7 33-22-2 9 40h-16l9 44c-20-1-41-1-61-3-"
DATA "6 0-12 0-18-2l31-1-3-17 38 3c-1-11-4-21-7-31-24-2-48-6-72-7l3 15-60 1c-5-27-12-54-15-81l59 3 6 28 72 9-5-27-63-9"
DATA "-5-24ZM325 425l77 1 8 43-77 1c-3-15-7-30-8-45Z'/></g><path fill='#00bbfd' d='m158 142 329 57 28 144 4 25 5 24-10"
DATA "-1-59-3-27-1 7 39h-33l-77-1-7-43-94-4-31-1-10-69-5-32-20-134m126 58 16 100h1c0 10 3 20 4 30l2 13c26 1 53 4 79 4l"
DATA "36 3-5-27c-3-24-8-47-12-70l25 2-6-33-140-22Z'/><path fill='#037efe' d='m560 211 220 38 12 53c-9 0-17-2-26-3 3 17"
DATA " 6 33 11 49l26 1 12 54-169-7h-14c-12-2-24-1-35-2l-4-15-4-22-29-146m80 44 7 33c0 3 3 3 5 3l85 11-7-34-90-13m16 75"
DATA " 9 42 89 5-9-39-89-8Z'/><g fill='#070636'><path d='m71 256 61 11v1c2 11 4 21 4 32l-23-4 29 195c8 1 16-2 23 3l11 "
DATA "75h-24c7 38 12 76 17 114l16 106 22-4 2 13 446-88c5 2 10 0 14 0l35-6v-4l12-2c2 10 6 20 7 31a19145 19145 0 0 0-202"
DATA " 39l-146 29-220 43-24-168-37-255-23-161ZM868 555c2 2 2 5 2 7l-2-7Z' opacity='.4'/></g><g fill='#030173'><path d="
DATA "'M132 268c16 3 31 7 46 8l5 32-46-8h-1c0-11-2-21-4-32ZM301 300l116 23 5 27-36-3c0-2-2-4-4-4l-77-13c-1-10-4-20-4-3"
DATA "0ZM515 343c24 5 49 11 74 14l4 22-50-8c-8-1-16-4-24-3l-4-25ZM224 378l94 4 7 43c1 15 5 30 8 45h-8l-8-2-80-5c-4-29-"
DATA "10-57-13-85ZM428 387l27 1c3 27 10 54 15 81h-60l-8-43h33l-7-39ZM514 391l10 1 63 9 5 27-72-9-6-28ZM632 396h14l17 7"
DATA "1h-37l-9-40 22 2-7-33ZM527 453c24 1 48 5 72 7 3 10 6 20 7 31l-38-3-4-20h-34l-3-15ZM165 491l43 2 37 243 359-59-22"
DATA "-115c-79 5-157 12-236 18l-11-67 205-7c6 2 12 2 18 2 20 2 41 2 61 3l17 84 54-6 24 104 3 5h-1l-12 2-49 10-446 88-2"
DATA "-13-31-216-11-75v-3Z'/><path d='m491 609 6-1 8 44-143 19-8-47 137-15Z'/></g><path fill='#013f59' d='m113 296 23 "
DATA "4h1l28 191v3c-7-5-15-2-23-3l-29-195Z' opacity='.4'/><path fill='#000314' d='M26 404c23 3 46 9 68 13l37 255H96l28"
DATA " 188 255-42-4-21 146-29 6 26 36-6c1 0 4-1 4-3l-5-25 11-2 11 50-23 5-441 86c-7 2-14 4-22 4L26 404Z' opacity='.1'/"
DATA "><path fill='#f87d03' d='M771 466h60l40 168-59 9-14-65-108 11-54 6-17-84-9-44h74c2-1 2 1 2 2l18 82 84-7-17-78Z'/"
DATA "><path fill='#febd04' d='m470 469 60-1h34l4 20 3 17-31 1-205 7 11 67c79-6 157-13 236-18l22 115-359 59-37-243-3-2"
DATA "2 120-1h8l77-1h60m21 140-137 15 8 47 143-19-8-44-6 1Z'/><g fill='#5d470f'><path d='M152 569h24l31 216-22 4-16-10"
DATA "6c-5-38-10-76-17-114ZM655 710l49-10v4l-35 6c-4 0-9 2-14 0Z' opacity='.4'/></g></svg>"
DATA ""


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link