imagecreatefromxpm
CREATE a new image from file or URL from a XPM image.
Since PHP 5.3.19 this function is available on Windows™.
This function returns an image identifier representing the image obtained from the given filename.
This function returns FALSE on errors.
The GdImage, resource or object returned by this function allows the creation of other image formats from XPM format.
<?php
GdImage|false imagecreatefromxpm( string $filename )
where,
$filename = The path to an existing XPM image
?>
$filename
The path or stream resource.
$filename can reference a local file or, (configuration permitting), a remote file using one of the supported stream wrappers:
STREAM WRAPPERS |
MEANING |
file:// |
LOCAL File System |
http:// |
URL HTTP |
ftp:// |
URL FTP |
php:// |
I/O streams |
zlib:// |
Data Compression stream |
data:// |
DATA (RFC-2397) |
glob:// |
Find Filenames |
phar:// |
PHP Archive |
ssh2:// |
Secure Shell 2 |
rar:// |
RAR |
ogg:// |
Audio |
expect:// |
Interaction of stream processes |
ed48 |
/* XPM */
static char * conv_test_xpm[] = {
"50 50 1535 2",
" c None",
". c #F81010",
"+ c #F71112",
"@ c #F51314",
"# c #F31517",
"$ c #F01619",
"% c #EE181C",
"& c #EC191E",
"* c #E91B21",
"= c #E71D24",
"- c #E41E26",
"; c #E22028",
"> c #E0212B",
", c #DE232D",
"' c #DB2430",
") c #D92632",
"! c #D62835",
"~ c #D42938",
"{ c #D22B3A",
"] c #CF2C3D",
"^ c #CD2E3F",
"/ c #CB2F41",
"( c #C93144",
"_ c #C63346",
": c #C43449",
"< c #C1364C",
"[ c #BF374E",
"} c #BD3951",
"| c #BB3B53",
"1 c #B83C55",
"2 c #B63E58",
"3 c #B43F5A",
"4 c #B1415D",
"5 c #AF4360",
"6 c #AC4462",
"7 c #AA4665",
"8 c #A84767",
"9 c #A6496A",
"0 c #A34A6C",
"a c #A14C6E",
"b c #9F4D71",
"c c #9C4F74",
"d c #9A5176",
"e c #975279",
"f c #95547B",
"g c #93557E",
"h c #F71212",
"i c #F51315",
"j c #F21517",
"k c #F0161A",
"l c #EB191E",
"m c #E22029",
"n c #DD232E",
"o c #D92633",
"p c #D42A38",
"q c #CF2D3D",
"r c #CD2F3F",
"s c #CB3142",
"t c #C83244",
"u c #C63347",
"v c #C43549",
"w c #BF384E",
"x c #BA3B53",
"y c #B83C56",
"z c #B33F5B",
"A c #A5496A",
"B c #A14C6F",
"C c #9E4E71",
"D c #93567E",
"E c #905780",
"F c #F41315",
"G c #EB191F",
"H c #E61D24",
"I c #DB2530",
"J c #D92733",
"K c #D62936",
"L c #D22C3A",
"M c #D02E3D",
"N c #CD303F",
"O c #C93344",
"P c #C73447",
"Q c #C53649",
"R c #C2384C",
"S c #C0394F",
"T c #BD3A51",
"U c #BB3C53",
"V c #B83D56",
"W c #B63F58",
"X c #B3405B",
"Y c #AE4360",
"Z c #AC4463",
"` c #A74767",
" . c #A34B6C",
".. c #995177",
"+. c #975379",
"@. c #95547C",
"#. c #8E5983",
"$. c #F71213",
"%. c #ED181C",
"&. c #EB1A1F",
"*. c #E91B22",
"=. c #E41E27",
"-. c #DF222C",
";. c #DB2630",
">. c #D82833",
",. c #D42B38",
"'. c #D22D3B",
"). c #D02F3D",
"!. c #CE3040",
"~. c #CB3242",
"{. c #C93444",
"]. c #C73547",
"^. c #C53749",
"/. c #C03A4F",
"(. c #BE3B51",
"_. c #BB3D54",
":. c #B93E56",
"<. c #B64059",
"[. c #B4415B",
"}. c #B2425D",
"|. c #AF4460",
"1. c #AC4563",
"2. c #A74868",
"3. c #A34B6D",
"4. c #A04C6F",
"5. c #9E4E72",
"6. c #9C5074",
"7. c #92567E",
"8. c #905781",
"9. c #8B5B86",
"0. c #F61213",
"a. c #F21518",
"b. c #F0171A",
"c. c #ED181D",
"d. c #E81B22",
"e. c #E41F27",
"f. c #E12029",
"g. c #DD242E",
"h. c #DB2631",
"i. c #D62A36",
"j. c #D42C38",
"k. c #D22E3B",
"l. c #D0303D",
"m. c #CD3140",
"n. c #CB3342",
"o. c #C93545",
"p. c #C73647",
"q. c #C5384A",
"r. c #C3394C",
"s. c #C03B4F",
"t. c #BE3D51",
"u. c #BC3E54",
"v. c #BA3F56",
"w. c #B74159",
"x. c #B5425B",
"y. c #B2435E",
"z. c #B04560",
"A. c #AD4663",
"B. c #AA4765",
"C. c #A84868",
"D. c #9B5075",
"E. c #94547C",
"F. c #905881",
"G. c #895C88",
"H. c #F81111",
"I. c #F41415",
"J. c #EF171A",
"K. c #E81C22",
"L. c #E61D25",
"M. c #DA2731",
"N. c #D92933",
"O. c #D42D39",
"P. c #D0303E",
"Q. c #CD3240",
"R. c #C33A4D",
"S. c #BE3D52",
"T. c #B94056",
"U. c #B04561",
"V. c #AE4763",
"W. c #AB4866",
"X. c #A94A68",
"Y. c #A64B6B",
"Z. c #A34C6D",
"`. c #A14D6F",
" + c #97537A",
".+ c #94557C",
"++ c #92567F",
"@+ c #8D5983",
"#+ c #865E8B",
"$+ c #F41416",
"%+ c #F11518",
"&+ c #EF171B",
"*+ c #E31F27",
"=+ c #E1202A",
"-+ c #DF232C",
";+ c #DC252F",
">+ c #D62B36",
",+ c #D22F3B",
"'+ c #CF303E",
")+ c #CB3343",
"!+ c #C73648",
"~+ c #C23A4D",
"{+ c #BB3E54",
"]+ c #B94057",
"^+ c #B5425C",
"/+ c #B2445E",
"(+ c #AC4866",
"_+ c #AA4A68",
":+ c #A74C6B",
"<+ c #A44D6D",
"[+ c #A24E70",
"}+ c #9F4F72",
"|+ c #9C5075",
"1+ c #995277",
"2+ c #96537A",
"3+ c #8D5984",
"4+ c #895C89",
"5+ c #84608E",
"6+ c #ED191D",
"7+ c #EA1A20",
"8+ c #E1212A",
"9+ c #D92934",
"0+ c #C83545",
"a+ c #B74259",
"b+ c #B4425C",
"c+ c #AE4764",
"d+ c #AC4966",
"e+ c #A54D6D",
"f+ c #A34F70",
"g+ c #A05072",
"h+ c #9D5275",
"i+ c #9A5378",
"j+ c #97547A",
"k+ c #8F5881",
"l+ c #885D89",
"m+ c #865E8C",
"n+ c #816191",
"o+ c #F11618",
"p+ c #EC191D",
"q+ c #E81C23",
"r+ c #E51E25",
"s+ c #E31F28",
"t+ c #D92A34",
"u+ c #D62C37",
"v+ c #D12F3C",
"w+ c #CD3241",
"x+ c #CA3343",
"y+ c #C73748",
"z+ c #C03B50",
"A+ c #BD3D52",
"B+ c #BB3F55",
"C+ c #B6425A",
"D+ c #B4435C",
"E+ c #AF4661",
"F+ c #AD4764",
"G+ c #A94A69",
"H+ c #A54D6E",
"I+ c #9E5275",
"J+ c #9B5478",
"K+ c #99557A",
"L+ c #96567D",
"M+ c #93577F",
"N+ c #905882",
"O+ c #8D5A84",
"P+ c #8B5B87",
"Q+ c #83608E",
"R+ c #816291",
"S+ c #7F6393",
"T+ c #E71C23",
"U+ c #DC262F",
"V+ c #DA2832",
"W+ c #D82A34",
"X+ c #D32D39",
"Y+ c #CA3443",
"Z+ c #C83546",
"`+ c #C4394B",
" @ c #C23B4E",
".@ c #C03D51",
"+@ c #BE3F54",
"@@ c #BC4157",
"#@ c #BA435A",
"$@ c #B7445C",
"%@ c #B5455F",
"&@ c #B24661",
"*@ c #B04763",
"=@ c #AE4865",
"-@ c #A24F70",
";@ c #A05173",
">@ c #97577D",
",@ c #94587F",
"'@ c #915982",
")@ c #8E5B84",
"!@ c #865F8C",
"~@ c #7C6596",
"{@ c #E51E26",
"]@ c #E0212A",
"^@ c #D32D3A",
"/@ c #CF313E",
"(@ c #CC3241",
"_@ c #C63749",
":@ c #C43A4D",
"<@ c #C23D50",
"[@ c #C03F53",
"}@ c #BE4157",
"|@ c #BC4359",
"1@ c #BA455C",
"2@ c #B8465F",
"3@ c #B64861",
"4@ c #B44964",
"5@ c #B14A66",
"6@ c #AF4B68",
"7@ c #AD4C6A",
"8@ c #AA4D6B",
"9@ c #A74E6D",
"0@ c #A54E6E",
"a@ c #9D5276",
"b@ c #99567B",
"c@ c #96577D",
"d@ c #945980",
"e@ c #925A82",
"f@ c #8F5C84",
"g@ c #8C5C87",
"h@ c #895E89",
"i@ c #83608F",
"j@ c #7E6394",
"k@ c #7A6698",
"l@ c #EA1B20",
"m@ c #E21F28",
"n@ c #DC2530",
"o@ c #D52C37",
"p@ c #D32E3A",
"q@ c #CE313F",
"r@ c #CA3444",
"s@ c #C83646",
"t@ c #C6394A",
"u@ c #C53B4E",
"v@ c #C33E52",
"w@ c #C14155",
"x@ c #BF4358",
"y@ c #BD455C",
"z@ c #BB475F",
"A@ c #B94961",
"B@ c #B74B64",
"C@ c #B54C66",
"D@ c #B34D68",
"E@ c #B04F6B",
"F@ c #AE4F6C",
"G@ c #AC506E",
"H@ c #A95170",
"I@ c #A65272",
"J@ c #A35273",
"K@ c #A05274",
"L@ c #9D5376",
"M@ c #905C85",
"N@ c #8E5E87",
"O@ c #8A5F8A",
"P@ c #87608C",
"Q@ c #84618F",
"R@ c #7E6494",
"S@ c #7A6799",
"T@ c #77689B",
"U@ c #D92832",
"V@ c #D82A35",
"W@ c #C83647",
"X@ c #C6394B",
"Y@ c #C53D4F",
"Z@ c #C33F53",
"`@ c #C14257",
" # c #C0445A",
".# c #BE475D",
"+# c #BC4961",
"@# c #BA4B63",
"## c #B84D66",
"$# c #B64F69",
"%# c #B4506B",
"&# c #B2526D",
"*# c #AF536F",
"=# c #AD5471",
"-# c #AB5473",
";# c #A85574",
"># c #A55576",
",# c #A25678",
"'# c #9F5679",
")# c #9C567A",
"!# c #925B82",
"~# c #8C5F8A",
"{# c #88618D",
"]# c #86628F",
"^# c #826392",
"/# c #7F6494",
"(# c #796799",
"_# c #756A9E",
":# c #D72A35",
"<# c #D52C38",
"[# c #CC3342",
"}# c #C83747",
"|# c #C63A4B",
"1# c #C53D50",
"2# c #C34054",
"3# c #C24358",
"4# c #C0455B",
"5# c #BE485F",
"6# c #BC4B62",
"7# c #BB4D65",
"8# c #B94F68",
"9# c #B7516B",
"0# c #B5536E",
"a# c #B35470",
"b# c #B05672",
"c# c #AE5774",
"d# c #AD5876",
"e# c #AA5878",
"f# c #A75979",
"g# c #A4597A",
"h# c #A15A7C",
"i# c #9E5A7D",
"j# c #9B5A7E",
"k# c #975A80",
"l# c #945A81",
"m# c #915B83",
"n# c #8B5F8A",
"o# c #89618D",
"p# c #86638F",
"q# c #846492",
"r# c #806594",
"s# c #7D6697",
"t# c #77689C",
"u# c #726CA1",
"v# c #C63A4C",
"w# c #C34154",
"x# c #C0465C",
"y# c #BE4960",
"z# c #BD4C64",
"A# c #BB4F67",
"B# c #BA516A",
"C# c #B8536D",
"D# c #B65570",
"E# c #B45772",
"F# c #B25975",
"G# c #B05A77",
"H# c #AD5B79",
"I# c #AC5C7B",
"J# c #A95C7C",
"K# c #A65D7E",
"L# c #A35D7F",
"M# c #A05D80",
"N# c #9D5D81",
"O# c #9A5D82",
"P# c #965D83",
"Q# c #935D85",
"R# c #905D86",
"S# c #8D5E88",
"T# c #826694",
"U# c #7E6797",
"V# c #7B6899",
"W# c #78699C",
"X# c #706DA3",
"Y# c #DF212B",
"Z# c #D62935",
"`# c #C43D50",
" $ c #C34155",
".$ c #C14459",
"+$ c #C0475D",
"@$ c #BF4A61",
"#$ c #BD4D65",
"$$ c #BC5068",
"%$ c #BA536C",
"&$ c #BA5870",
"*$ c #B95C75",
"=$ c #B85E79",
"-$ c #B6607B",
";$ c #B4617D",
">$ c #B2627F",
",$ c #B06380",
"'$ c #AD6280",
")$ c #A96080",
"!$ c #A56082",
"~$ c #A26183",
"{$ c #9F6184",
"]$ c #9C6185",
"^$ c #996186",
"/$ c #956187",
"($ c #926088",
"_$ c #8F6089",
":$ c #8B608B",
"<$ c #866390",
"[$ c #826695",
"}$ c #7F6897",
"|$ c #7D6999",
"1$ c #796A9C",
"2$ c #766B9E",
"3$ c #6F6EA4",
"4$ c #6D6FA6",
"5$ c #DB2531",
"6$ c #D82733",
"7$ c #CE3140",
"8$ c #C93445",
"9$ c #C5394B",
"0$ c #C14359",
"a$ c #BF4B61",
"b$ c #BD4E66",
"c$ c #BC5169",
"d$ c #BC566D",
"e$ c #BC5B74",
"f$ c #B95C77",
"g$ c #B85D78",
"h$ c #B65F79",
"i$ c #B4617C",
"j$ c #B2627E",
"k$ c #AE6483",
"l$ c #AC6686",
"m$ c #AB6888",
"n$ c #A76787",
"o$ c #A26487",
"p$ c #9E6488",
"q$ c #9B6489",
"r$ c #98648A",
"s$ c #94648B",
"t$ c #91638C",
"u$ c #8D638D",
"v$ c #8A638E",
"w$ c #846592",
"x$ c #816695",
"y$ c #7D699A",
"z$ c #7A6B9C",
"A$ c #776C9F",
"B$ c #746DA1",
"C$ c #706EA4",
"D$ c #6B71A9",
"E$ c #DA2531",
"F$ c #D82633",
"G$ c #C43C4F",
"H$ c #C24054",
"I$ c #C14358",
"J$ c #BE4A61",
"K$ c #BC516A",
"L$ c #BD586F",
"M$ c #BB5B76",
"N$ c #BA5C76",
"O$ c #B95F78",
"P$ c #B8617B",
"Q$ c #B6637E",
"R$ c #B56580",
"S$ c #B36783",
"T$ c #B16885",
"U$ c #AF6986",
"V$ c #AC6988",
"W$ c #A96989",
"X$ c #A66A8D",
"Y$ c #A56B8D",
"Z$ c #9E688C",
"`$ c #9A678D",
" % c #96678E",
".% c #93678F",
"+% c #906690",
"@% c #8C6691",
"#% c #886692",
"$% c #846593",
"%% c #786C9F",
"&% c #756EA2",
"*% c #726FA4",
"=% c #6E6FA7",
"-% c #6872AB",
";% c #D62836",
">% c #D32B39",
",% c #D02F3E",
"'% c #C33B4E",
")% c #C23F53",
"!% c #C04358",
"~% c #BF465C",
"{% c #BA5D76",
"]% c #B96079",
"^% c #B9637D",
"/% c #B96680",
"(% c #B96883",
"_% c #B86A86",
":% c #B66C88",
"<% c #B46D8A",
"[% c #B06D8B",
"}% c #AD6D8C",
"|% c #AA6D8D",
"1% c #A66D8E",
"2% c #A26D91",
"3% c #A06E92",
"4% c #996A91",
"5% c #956A91",
"6% c #926992",
"7% c #8F6993",
"8% c #8B6994",
"9% c #876895",
"0% c #826896",
"a% c #7F6898",
"b% c #7C699A",
"c% c #7A6B9D",
"d% c #786D9F",
"e% c #766EA2",
"f% c #7370A4",
"g% c #7070A7",
"h% c #6C71A9",
"i% c #6873AC",
"j% c #6674AE",
"k% c #D32A39",
"l% c #D12D3B",
"m% c #CF2F3E",
"n% c #C13E52",
"o% c #C04256",
"p% c #BE455B",
"q% c #BD4960",
"r% c #BC4D65",
"s% c #BB5069",
"t% c #BB566E",
"u% c #BA6079",
"v% c #BA647E",
"w% c #BB6882",
"x% c #BD6B86",
"y% c #BD6E89",
"z% c #BE708C",
"A% c #BC718E",
"B% c #B9728F",
"C% c #B57290",
"D% c #B07191",
"E% c #AC7191",
"F% c #A67092",
"G% c #A26F93",
"H% c #9E7096",
"I% c #9B7095",
"J% c #946D95",
"K% c #916C96",
"L% c #8D6C96",
"M% c #896B97",
"N% c #856B98",
"O% c #816A99",
"P% c #7D6A9B",
"Q% c #766FA2",
"R% c #7470A4",
"S% c #7172A7",
"T% c #6E72A9",
"U% c #6A73AC",
"V% c #6376B1",
"W% c #D02C3B",
"X% c #CF2E3E",
"Y% c #C03C50",
"Z% c #BF4055",
"`% c #BE445A",
" & c #BC485F",
".& c #BB4C63",
"+& c #BA4F68",
"@& c #BA536D",
"#& c #BB5C75",
"$& c #B95C76",
"%& c #B9607A",
"&& c #BC6882",
"*& c #BF6C87",
"=& c #C1708B",
"-& c #C5778F",
";& c #C97D92",
">& c #C77F94",
",& c #C27C95",
"'& c #BB7896",
")& c #B47696",
"!& c #AE7596",
"~& c #A87496",
"{& c #A27396",
"]& c #9D7297",
"^& c #9B739A",
"/& c #947098",
"(& c #906F99",
"_& c #8C6E9A",
":& c #886E9B",
"<& c #836D9B",
"[& c #7F6D9C",
"}& c #7B6C9D",
"|& c #776D9F",
"1& c #7470A5",
"2& c #6F73AA",
"3& c #6C74AC",
"4& c #6875AE",
"5& c #6476B1",
"6& c #6178B3",
"7& c #D02C3C",
"8& c #CE2E3E",
"9& c #CC3041",
"0& c #C4384A",
"a& c #BD4259",
"b& c #BB465E",
"c& c #BA4A62",
"d& c #B94E67",
"e& c #B8526B",
"f& c #B95870",
"g& c #B95D78",
"h& c #B85F79",
"i& c #C3738C",
"j& c #CD8091",
"k& c #D18695",
"l& c #D18998",
"m& c #D08A9B",
"n& c #CE8A9B",
"o& c #C9879B",
"p& c #BB7D9B",
"q& c #B1799A",
"r& c #AA779A",
"s& c #A37699",
"t& c #9C759A",
"u& c #98749C",
"v& c #95759C",
"w& c #8E719C",
"x& c #8A709D",
"y& c #86709E",
"z& c #826F9F",
"A& c #7D6FA0",
"B& c #796FA1",
"C& c #7370A5",
"D& c #6C75AC",
"E& c #6A76AF",
"F& c #6677B1",
"G& c #6278B4",
"H& c #5E79B6",
"I& c #CE2D3E",
"J& c #CA3243",
"K& c #C83446",
"L& c #C4384B",
"M& c #BF3C50",
"N& c #BB4157",
"O& c #BA445C",
"P& c #B94861",
"Q& c #B84C65",
"R& c #B7506A",
"S& c #B7546F",
"T& c #B85D76",
"U& c #B65E79",
"V& c #B7627C",
"W& c #B96681",
"X& c #BC6B86",
"Y& c #C1718B",
"Z& c #D28897",
"`& c #D991A0",
" * c #DE98A9",
".* c #DE9AAB",
"+* c #D895A6",
"@* c #CE8EA1",
"#* c #C88A9F",
"$* c #B57E9E",
"%* c #AC7A9D",
"&* c #A3789D",
"** c #9C779D",
"=* c #96769E",
"-* c #9578A1",
";* c #8D739F",
">* c #8873A0",
",* c #8472A0",
"'* c #8072A2",
")* c #7B71A3",
"!* c #7771A4",
"~* c #6F74AA",
"{* c #6A77AF",
"]* c #6778B1",
"^* c #6379B4",
"/* c #607AB7",
"(* c #5C7BB9",
"_* c #C93143",
":* c #C63648",
"<* c #BD3D53",
"[* c #B9425A",
"}* c #B74A63",
"|* c #B64E68",
"1* c #B5526D",
"2* c #B55672",
"3* c #B75F7A",
"4* c #B5607B",
"5* c #B6647F",
"6* c #B86984",
"7* c #C5788F",
"8* c #E4A1B2",
"9* c #ECB7C4",
"0* c #ECBAC7",
"a* c #E4A8BA",
"b* c #D898AB",
"c* c #CB8EA3",
"d* c #BC86A2",
"e* c #AD7DA1",
"f* c #A47BA0",
"g* c #9B79A0",
"h* c #9578A0",
"i* c #9379A4",
"j* c #8C76A2",
"k* c #8675A3",
"l* c #8274A3",
"m* c #7E73A4",
"n* c #7973A5",
"o* c #7573A6",
"p* c #7172A8",
"q* c #6E74AA",
"r* c #6C75AD",
"s* c #6878B2",
"t* c #6579B4",
"u* c #617BB7",
"v* c #5D7BB9",
"w* c #597DBC",
"x* c #C73346",
"y* c #C3384B",
"z* c #C23A4E",
"A* c #BA3F55",
"B* c #B84158",
"C* c #B7445D",
"D* c #B64862",
"E* c #B35874",
"F* c #B5617C",
"G* c #B3627D",
"H* c #B46682",
"I* c #B76B87",
"J* c #BD708C",
"K* c #C87E93",
"L* c #D18999",
"M* c #F9E0E6",
"N* c #FAE6EB",
"O* c #EEC2CE",
"P* c #DDA1B5",
"Q* c #CC91A8",
"R* c #C18BA5",
"S* c #AE7FA3",
"T* c #A37DA2",
"U* c #9A7BA2",
"V* c #937AA3",
"W* c #917BA6",
"X* c #8B78A4",
"Y* c #8476A5",
"Z* c #8076A6",
"`* c #7C75A7",
" = c #7775A8",
".= c #7375A9",
"+= c #6778B2",
"@= c #657AB4",
"#= c #627BB7",
"$= c #5F7CB9",
"%= c #5B7DBC",
"&= c #577EBE",
"*= c #C3374B",
"== c #C13A4E",
"-= c #BF3C51",
";= c #BD3E53",
">= c #B6425B",
",= c #B4465F",
"'= c #B34A64",
")= c #B24E69",
"!= c #B2526E",
"~= c #B15672",
"{= c #B15A77",
"]= c #B3627F",
"^= c #B16380",
"/= c #B26784",
"(= c #B66D89",
"_= c #BB728F",
":= c #C77F95",
"<= c #D08B9B",
"[= c #FBEBF0",
"}= c #EEC6D1",
"|= c #DDA2B7",
"1= c #CC93AA",
"2= c #BF8CA7",
"3= c #AC81A6",
"4= c #A17FA5",
"5= c #987DA5",
"6= c #927BA5",
"7= c #8F7CA8",
"8= c #8879A7",
"9= c #8278A8",
"0= c #7E78A9",
"a= c #7977AA",
"b= c #7576AB",
"c= c #7176AC",
"d= c #6C76AD",
"e= c #6977AF",
"f= c #6779B2",
"g= c #627CB7",
"h= c #607DBA",
"i= c #5C7EBC",
"j= c #587FBF",
"k= c #5580C1",
"l= c #C2364B",
"m= c #C0394E",
"n= c #BF3B51",
"o= c #BC3E53",
"p= c #B3435D",
"q= c #B24762",
"r= c #B14B66",
"s= c #AF5370",
"t= c #AE5775",
"u= c #AE5B79",
"v= c #B16381",
"w= c #AF6482",
"x= c #B06986",
"y= c #B36D8B",
"z= c #B87290",
"A= c #C17D96",
"B= c #CE8A9C",
"C= c #D895A7",
"D= c #E5AFC2",
"E= c #D79DB2",
"F= c #C891AA",
"G= c #BA8AA8",
"H= c #A981A7",
"I= c #9F80A7",
"J= c #967EA7",
"K= c #907DA8",
"L= c #8D7EAB",
"M= c #857AA9",
"N= c #8079AA",
"O= c #7B79AB",
"P= c #7778AC",
"Q= c #7378AD",
"R= c #6E78AE",
"S= c #6A77B0",
"T= c #657AB5",
"U= c #607EBA",
"V= c #5D7EBC",
"W= c #5A80BF",
"X= c #5681C1",
"Y= c #5282C4",
"Z= c #BC3D53",
"`= c #B14560",
" - c #AF4864",
".- c #AE4C69",
"+- c #AE506D",
"@- c #AD5472",
"#- c #AD5877",
"$- c #AD6585",
"%- c #AD6988",
"&- c #AF6E8C",
"*- c #B37391",
"=- c #BA7896",
"-- c #C8889C",
";- c #CE8EA2",
">- c #DDA3B7",
",- c #CC95AC",
"'- c #C390AA",
")- c #AF84A9",
"!- c #A481A8",
"~- c #9A80A8",
"{- c #937FA9",
"]- c #8D7DAA",
"^- c #8B7FAD",
"/- c #827BAB",
"(- c #7D7BAC",
"_- c #787AAD",
":- c #757AAE",
"<- c #7079B0",
"[- c #6C79B1",
"}- c #647AB5",
"|- c #627CB8",
"1- c #5D7FBD",
"2- c #5B80BF",
"3- c #5781C1",
"4- c #5382C4",
"5- c #5083C6",
"6- c #BC3A51",
"7- c #BB3C54",
"8- c #BA3E56",
"9- c #B74158",
"0- c #AE4662",
"a- c #AD4966",
"b- c #AC4E6B",
"c- c #AC5270",
"d- c #AB5574",
"e- c #AA5979",
"f- c #AA5D7D",
"g- c #AB6482",
"h- c #AB6788",
"i- c #AB6A89",
"j- c #AC6E8E",
"k- c #AF7292",
"l- c #B37797",
"m- c #BA7E9C",
"n- c #C78AA0",
"o- c #CB8EA4",
"p- c #CC92A8",
"q- c #C892AA",
"r- c #B387AA",
"s- c #A882AA",
"t- c #9E81AA",
"u- c #9580AA",
"v- c #8F7FAA",
"w- c #8A7EAC",
"x- c #8880AD",
"y- c #7E7CAD",
"z- c #7A7CAE",
"A- c #767BB0",
"B- c #727BB1",
"C- c #6D7BB2",
"D- c #697BB3",
"E- c #647BB5",
"F- c #5F7EBA",
"G- c #5B81BF",
"H- c #5882C2",
"I- c #5583C4",
"J- c #5184C7",
"K- c #4D85C9",
"L- c #BC3951",
"M- c #BA3B54",
"N- c #B74059",
"O- c #B3435E",
"P- c #AE4663",
"Q- c #AC4865",
"R- c #AB4B68",
"S- c #AA4F6D",
"T- c #A95372",
"U- c #A85676",
"V- c #A75A7B",
"W- c #A75E7F",
"X- c #A76283",
"Y- c #A96A8A",
"Z- c #A76A8B",
"`- c #A86E8F",
" ; c #AA7293",
".; c #AD7697",
"+; c #B07A9B",
"@; c #B57F9F",
"#; c #BC87A3",
"$; c #C08BA5",
"%; c #BA8AA9",
"&; c #A782AA",
"*; c #9F81AA",
"=; c #9781AB",
"-; c #9180AB",
";; c #8B80AC",
">; c #8981AF",
",; c #827EAE",
"'; c #7B7DAF",
"); c #777DB0",
"!; c #737CB2",
"~; c #6F7CB3",
"{; c #6A7CB4",
"]; c #667CB6",
"^; c #5D80BD",
"/; c #5982C2",
"(; c #5683C4",
"_; c #5284C7",
":; c #4E85C9",
"<; c #4A87CC",
"[; c #B73D56",
"}; c #B63F59",
"|; c #B4425B",
"1; c #A84C6B",
"2; c #A7506F",
"3; c #A65373",
"4; c #A55778",
"5; c #A45B7C",
"6; c #A45E80",
"7; c #A36285",
"8; c #A56889",
"9; c #A56B8F",
"0; c #A46E90",
"a; c #A57193",
"b; c #A77597",
"c; c #A9789B",
"d; c #AB7B9F",
"e; c #AD7EA2",
"f; c #AD80A4",
"g; c #AC81A7",
"h; c #A981A8",
"i; c #A481A9",
"j; c #9D81AA",
"k; c #9281AC",
"l; c #8C80AD",
"m; c #8880AF",
"n; c #8681B0",
"o; c #7C7EB0",
"p; c #787EB1",
"q; c #747EB2",
"r; c #707DB4",
"s; c #6C7DB5",
"t; c #677DB7",
"u; c #627DB8",
"v; c #5F7EBB",
"w; c #5B81C0",
"x; c #5385C7",
"y; c #4F86C9",
"z; c #4B87CC",
"A; c #4789CF",
"B; c #B73D57",
"C; c #B53E59",
"D; c #B3415C",
"E; c #B1435E",
"F; c #A45071",
"G; c #A35475",
"H; c #A25879",
"I; c #A15B7E",
"J; c #A05F82",
"K; c #A06286",
"L; c #9F668A",
"M; c #A26D8F",
"N; c #A06E93",
"O; c #A07195",
"P; c #A07498",
"Q; c #A1779B",
"R; c #A2799E",
"S; c #A37CA1",
"T; c #A27EA4",
"U; c #A17FA6",
"V; c #9E80A8",
"W; c #9981A9",
"X; c #9181AC",
"Y; c #8782B1",
"Z; c #7E7FB1",
"`; c #797FB2",
" > c #757FB3",
".> c #717EB5",
"+> c #6D7EB6",
"@> c #687EB7",
"#> c #647EB9",
"$> c #5783C5",
"%> c #5485C7",
"&> c #5087CA",
"*> c #4C87CC",
"=> c #4889CF",
"-> c #458AD1",
";> c #B53F59",
">> c #B2405C",
",> c #B0425E",
"'> c #AF4461",
")> c #A15173",
"!> c #A05577",
"~> c #9F587B",
"{> c #9E5C7F",
"]> c #9D5F83",
"^> c #9D6387",
"/> c #9C668B",
"(> c #9C698F",
"_> c #9E7094",
":> c #9C7198",
"<> c #9B7399",
"[> c #9B769C",
"}> c #9B789F",
"|> c #9A7AA1",
"1> c #997CA4",
"2> c #977DA6",
"3> c #957FA8",
"4> c #927FAA",
"5> c #8F80AB",
"6> c #8B80AD",
"7> c #8880B0",
"8> c #8682B1",
"9> c #7E80B1",
"0> c #767FB4",
"a> c #727FB5",
"b> c #6D7FB6",
"c> c #697FB8",
"d> c #647FBA",
"e> c #607FBB",
"f> c #5C80BD",
"g> c #5784C5",
"h> c #5187CA",
"i> c #4D88CC",
"j> c #4989CF",
"k> c #458BD2",
"l> c #428CD4",
"m> c #AE4461",
"n> c #AC4663",
"o> c #9C5579",
"p> c #9C597D",
"q> c #9B5C81",
"r> c #9A5F85",
"s> c #996389",
"t> c #98668C",
"u> c #976990",
"v> c #976C93",
"w> c #997197",
"x> c #99759C",
"y> c #96759E",
"z> c #9577A0",
"A> c #9379A2",
"B> c #917CA7",
"C> c #8F7DA9",
"D> c #8C7EAA",
"E> c #897FAD",
"F> c #8881B0",
"G> c #8582B1",
"H> c #7D7FB1",
"I> c #797FB3",
"J> c #757FB4",
"K> c #6E80B7",
"L> c #6A7FB8",
"M> c #6580BA",
"N> c #6180BC",
"O> c #5D80BE",
"P> c #5982C3",
"Q> c #5684C5",
"R> c #5485C8",
"S> c #4E88CC",
"T> c #4A8ACF",
"U> c #468BD2",
"V> c #408ED7",
"W> c #B0425F",
"X> c #AD4361",
"Y> c #AB4564",
"Z> c #A94766",
"`> c #A84969",
" , c #A64C6B",
"., c #99567A",
"+, c #98597E",
"@, c #975C82",
"#, c #966086",
"$, c #95638A",
"%, c #94668E",
"&, c #946991",
"*, c #936C94",
"=, c #926E98",
"-, c #92719A",
";, c #94769E",
">, c #9479A2",
",, c #927AA5",
"', c #8E7DAA",
"), c #8C7FAC",
"!, c #8A80AE",
"~, c #8780AE",
"{, c #817FAF",
"], c #7C7EB1",
"^, c #787FB2",
"/, c #727FB6",
"(, c #6A80B9",
"_, c #6680BA",
":, c #5882C3",
"<, c #5287CA",
"[, c #4E88CD",
"}, c #4B8ACF",
"|, c #478BD2",
"1, c #438CD4",
"2, c #3D8FD9",
"3, c #AD4461",
"4, c #A74969",
"5, c #A54B6B",
"6, c #A44D6E",
"7, c #955980",
"8, c #945D84",
"9, c #936087",
"0, c #92638B",
"a, c #91668F",
"b, c #906992",
"c, c #906C96",
"d, c #8F6E99",
"e, c #8D709C",
"f, c #8C739E",
"g, c #8B75A1",
"h, c #8A77A4",
"i, c #8979A6",
"j, c #877AA8",
"k, c #847BAB",
"l, c #807CAD",
"m, c #7D7DAF",
"n, c #7A7EB1",
"o, c #777EB2",
"p, c #717FB5",
"q, c #6D80B7",
"r, c #6580BB",
"s, c #6181BC",
"t, c #5D81BE",
"u, c #5A81C1",
"v, c #4F89CD",
"w, c #4B8AD0",
"x, c #488BD2",
"y, c #438CD5",
"z, c #3D90D9",
"A, c #3B91DC",
"B, c #A64969",
"C, c #A44A6C",
"D, c #A24C6E",
"E, c #A14E71",
"F, c #9F5173",
"G, c #905D85",
"H, c #906089",
"I, c #8F638C",
"J, c #8E6690",
"K, c #8D6893",
"L, c #8C6B97",
"M, c #8A6E9A",
"N, c #89709D",
"O, c #8872A0",
"P, c #8674A2",
"Q, c #8278A7",
"R, c #8079A9",
"S, c #7E7BAC",
"T, c #7B7CAE",
"U, c #797DB0",
"V, c #767EB2",
"W, c #747EB4",
"X, c #707FB6",
"Y, c #6980B9",
"Z, c #5684C6",
"`, c #5386C8",
" ' c #5187CB",
".' c #4C8AD0",
"+' c #488CD2",
"@' c #448DD5",
"#' c #3D90DA",
"$' c #3B91DD",
"%' c #9E5073",
"&' c #9C5276",
"*' c #98567B",
"=' c #8C608A",
"-' c #8B638E",
";' c #8A6691",
">' c #896894",
",' c #876B98",
"'' c #866D9B",
")' c #85709E",
"!' c #8372A1",
"~' c #7E77A8",
"{' c #7C79AB",
"]' c #797AAD",
"^' c #777BAF",
"/' c #757CB1",
"(' c #727DB3",
"_' c #6F7EB5",
":' c #6C7FB7",
"<' c #6880B9",
"[' c #6181BD",
"}' c #5883C3",
"|' c #4C8BD0",
"1' c #488CD3",
"2' c #458DD5",
"3' c #418ED7",
"4' c #9C4F73",
"5' c #9B5176",
"6' c #995378",
"7' c #98557B",
"8' c #96577E",
"9' c #925B83",
"0' c #89618C",
"a' c #87638F",
"b' c #866692",
"c' c #846896",
"d' c #836B99",
"e' c #826D9C",
"f' c #806F9F",
"g' c #7F72A2",
"h' c #7D73A4",
"i' c #7B75A7",
"j' c #737BB1",
"k' c #707CB3",
"l' c #6D7DB5",
"m' c #6A7EB7",
"n' c #677FB8",
"o' c #6380BB",
"p' c #6080BD",
"q' c #5C81BF",
"r' c #5883C4",
"s' c #5584C6",
"t' c #498CD3",
"u' c #458ED5",
"v' c #418ED8",
"w' c #985279",
"x' c #96547B",
"y' c #95577E",
"z' c #935980",
"A' c #8E5E88",
"B' c #806897",
"C' c #7F6A9A",
"D' c #7D6D9D",
"E' c #7C6FA0",
"F' c #7A71A3",
"G' c #7873A6",
"H' c #7577AB",
"I' c #717AB0",
"J' c #6E7BB2",
"K' c #6B7CB4",
"L' c #697DB6",
"M' c #657EB8",
"N' c #627FBA",
"O' c #5F80BC",
"P' c #5386C9",
"Q' c #5188CB",
"R' c #4E89CE",
"S' c #418FD8",
"T' c #3E90DA",
"U' c #925880",
"V' c #905A83",
"W' c #8F5C85",
"X' c #8B608A",
"Y' c #7B6B9C",
"Z' c #796D9F",
"`' c #776FA1",
" ) c #7671A4",
".) c #7573A7",
"+) c #7375AA",
"@) c #6E78AF",
"#) c #647DB8",
"$) c #5E7FBD",
"%) c #5A81C2",
"&) c #5783C4",
"*) c #5585C6",
"=) c #5088CB",
"-) c #4C8BD1",
";) c #498DD3",
">) c #458ED6",
",) c #8D5B86",
"') c #8B5D88",
")) c #766EA1",
"!) c #756FA3",
"~) c #7271A6",
"{) c #7073A9",
"]) c #6E75AB",
"^) c #6C76AE",
"/) c #6978B0",
"() c #6779B3",
"_) c #5585C7",
":) c #5088CC",
"<) c #4B8BD1",
"[) c #488DD3",
"}) c #3E90DB",
"|) c #8A5C88",
"1) c #885E8B",
"2) c #86608D",
"3) c #856290",
"4) c #836492",
"5) c #6D74AB",
"6) c #6B76AE",
"7) c #6679B3",
"8) c #5286C9",
"9) c #875E8B",
"0) c #855F8D",
"a) c #836290",
"b) c #826493",
"c) c #806595",
"d) c #7E6898",
"e) c #7271A7",
"f) c #6F73A9",
"g) c #6D75AC",
"h) c #6878B1",
"i) c #4D8ACE",
"j) c #4A8BD1",
"k) c #478DD4",
"l) c #448ED6",
"m) c #418FD9",
"n) c #3D91DB",
"o) c #826190",
"p) c #806393",
"q) c #7E6595",
"r) c #7C6798",
"s) c #7B699A",
"t) c #796A9D",
"u) c #647BB6",
"v) c #617CB8",
"w) c #4F88CC",
"x) c #4D8ACF",
"y) c #438ED6",
"z) c #408FD9",
"A) c #7D6595",
"B) c #79689A",
"C) c #776A9D",
"D) c #766C9F",
"E) c #746DA2",
"F) c #7071A7",
"G) c #6E73AA",
"H) c #6A76AE",
"I) c #617DB8",
"J) c #5C80BE",
"K) c #4C8ACF",
"L) c #498BD2",
"M) c #468DD4",
"N) c #438ED7",
"O) c #3F8FD9",
"P) c #3C91DB",
"Q) c #91567F",
"R) c #8F5882",
"S) c #816190",
"T) c #7D6596",
"U) c #78689B",
"V) c #76699D",
"W) c #746BA0",
"X) c #726CA2",
"Y) c #706FA4",
"Z) c #6E71A7",
"`) c #6D72AA",
" ! c #6B74AC",
".! c #6976AF",
"+! c #6777B1",
"@! c #637BB6",
"#! c #5E7EBB",
"$! c #5C7FBE",
"%! c #5A81C0",
"&! c #5584C5",
"*! c #5385C8",
"=! c #4D88CD",
"-! c #458CD4",
";! c #3C91DC",
">! c #8A5B87",
",! c #75699D",
"'! c #736BA0",
")! c #716DA2",
"!! c #6F6EA5",
"~! c #6C70A7",
"{! c #6B71AA",
"]! c #6973AC",
"^! c #6775AF",
"/! c #6577B1",
"(! c #617AB6",
"_! c #5D7EBB",
":! c #5B7FBE",
"<! c #5981C0",
"[! c #5682C3",
"}! c #5484C5",
"|! c #5185C8",
"1! c #4F87CA",
"2! c #4C88CD",
"3! c #3E90D9",
"4! c #8C5A84",
"5! c #7A6699",
"6! c #756A9D",
"7! c #6E6EA5",
"8! c #6C70A8",
"9! c #6972AA",
"0! c #6773AD",
"a! c #6575AF",
"b! c #6178B4",
"c! c #5F79B6",
"d! c #597EBE",
"e! c #5780C1",
"f! c #5482C3",
"g! c #5283C6",
"h! c #5085C8",
"i! c #4D86CA",
"j! c #4B88CD",
"k! c #428DD5",
"l! c #8A5C87",
"m! c #885D8A",
"n! c #855F8C",
"o! c #6276B2",
"p! c #6078B4",
"q! c #5E7AB7",
"r! c #5282C3",
"s! c #4E85C8",
"t! c #4C86CB",
"u! c #4988CD",
"v! c #4789D0",
"w! c #448BD2",
"x! c #3F8ED7",
". . . . . . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g ",
". . . . . h i j k % l * = - m > n ' o ! p { q r s t u v < w } x y 2 z 4 5 6 7 8 A 0 B C c d e f D E ",
". . . . h F j k % G * H - m > n I J K p L M N s O P Q R S T U V W X 4 Y Z 7 ` A .B C c [email protected] E #.",
". . . $.F j k %.&.*.H =.m -.n ;.>.K ,.'.).!.~.{.].^.R /.(._.:.<.[.}.|.1.7 2.A [email protected].#.9.",
". . 0.F a.b.c.&.d.H e.f.-.g.h.>.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.A 3.4.5.D...+.E.7.F.#.9.G.",
"H.0.I.a.J.c.&.K.L.e.f.-.g.M.N.i.O.k.P.Q.n.o.p.q.R.s.S.u.T.w.x.y.U.V.W.X.Y.Z.`.5.D... +.+++F.@+9.G.#+",
"0.$+%+&+c.&.K.L.*+=+-+;+M.N.>+O.,+'+Q.)+o.!+q.~+s.S.{+]+w.^+/+U.V.(+_+:+<+[+}+|+1+2+.+++F.3+9.4+#+5+",
"$+%+&+6+7+K.L.*+8+-+;+M.9+>+O.,+'+Q.)+0+!+q.~+s.S.{+]+a+b+/+U.c+d+_+:+e+f+g+h+i+j+.+++k+3+9.l+m+5+n+",
"o+&+p+7+q+r+s+8+, ;+M.t+u+O.v+'+w+x+0+y+q.~+z+A+B+]+C+D+/+E+F+d+G+:+H+f+g+I+J+K+L+M+N+O+P+l+m+Q+R+S+",
"&+& 7+T+r+s+8+, U+V+W+u+X+v+'+w+Y+Z+y+`+ @.@+@@@#@$@%@&@*@=@d+G+:+H+-@;@h+J+K+>@,@'@)@P+l+!@Q+R+S+~@",
"& 7+T+{@s+]@, ;+V+W+u+^@v+/@(@Y+Z+_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@-@;@a@J+b@c@d@e@f@g@h@!@i@R+j@~@k@",
"l@T+{@m@> , n@V+W+o@p@v+q@(@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@J+b@c@d@e@M@N@O@P@Q@R+R@~@S@T@",
"T+{@; > , I U@V@o@p@v+q@(@r@W@X@Y@Z@`@ #.#+#@###$#%#&#*#=#-#;#>#,#'#)#b@c@d@!#M@N@~#{#]#^#/#~@(#T@_#",
"- m > , I U@:#<#p@).q@[#r@}#|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#M@N@n#o#p#q#r#s#(#t#_#u#",
"m > n I J :#<#[email protected]@[#{.W@v#1#w#3#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#n#o#p#q#T#U#V#W#_#u#X#",
"Y#n I J Z#<#k.l.q@n.{.W@v#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~${$]$^$/$($_$:${#<$q#[$}$|$1$2$u#3$4$",
"n 5$6$Z#,.k.l.7$n.8$p.9$`#w#0$+$a$b$c$d$e$f$g$h$i$j$,$k$l$m$n$o$p$q$r$s$t$u$v$<$w$x$}$y$z$A$B$C$4$D$",
"E$F$K ,.'.l.m.n.o.p.q.G$H$I$+$J$b$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%x$}$y$z$%%&%*%=%D$-%",
"6$;%>%'.,%Q.)+o.p.q.'%)%!%~%J$#$c$L$M${%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%",
";%k%l%m%m.)+o.!+q.R.n%o%p%q%r%s%t%M${%u%v%w%x%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%c%d%Q%R%S%T%U%j%V%",
"k%W%X%m.)+0+!+q.~+Y%Z%`% &.&+&@&#&$&%&v%&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&Q%1&S%2&3&4&5&6&",
"7&8&9&x+Z+y+0&~+z++@a&b&c&d&e&f&g&h&^%w%*&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&Q%C&S%2&D&E&F&G&H&",
"I&9&J&K&y+L&~+M&A+N&O&P&Q&R&S&T&U&V&W&X&Y&j&Z&`& *.*+*@*#*$*%*&***=*-*;*>*,*'*)*!*1&S%~*D&{*]*^*/*(*",
"/ _*K&:*L&~+M&<*B+[*2@}*|*1*2*3*4*5*6*y%7*k&`&8*9*0*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*{*s*t*u*v*w*",
"( x*Q y*z*M&<*A*B*C*D*C@%#a#E*F*G*H*I*J*K*L* *9*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*`* =.=~*r*{*+=@=#=$=%=&=",
"_ v *===-=;=A*B*>=,='=)=!=~={=]=^=/=(=_=:=<=.*0*N*[=}=|=1=2=3=4=5=6=7=8=9=0=a=b=c=d=e=f=@=g=h=i=j=k=",
": l=m=n=o=v.B*>=p=q=r=E@s=t=u=v=w=x=y=z=A=B=C=a*O*}=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=f=T=g=U=V=W=X=Y=",
"< w (.Z=v.B*x.p=`= -.-+-@-#-I#w=$-%-&-*-=---;-b*P*>-E=,-'-)-!-~-{-]-^-/-(-_-:-<-[-f=}-|-U=1-2-3-4-5-",
"w 6-7-8-9-x.p=`=0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-1=q-'-r-s-t-u-v-w-x-y-z-A-B-C-D-E-|-F-1-G-H-I-J-K-",
"L-M-:.N-x.O-z.P-Q-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;2=%;)-&;*;=;-;;;>;,;';);!;~;{;];|-F-^;G-/;(;_;:;<;",
"M-[;};|;O-z.P-(+_+1;2;3;4;5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;=;k;l;m;n;o;p;q;r;s;t;u;v;^;w;/;(;x;y;z;A;",
"B;C;D;E;z.V.(+_+1;e+F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;u-X;l;m;Y;Z;`; >.>+>@>#>v;^;w;/;$>%>&>*>=>->",
";>>>,>'>V.d+_+:+e+f+)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4>5>6>7>8>9>`;0>a>b>c>d>e>f>w;/;g>%>h>i>j>k>l>",
">>,>m>n>W.G+:+e+f+g+I+o>p>q>r>s>t>u>v>w>x>y>z>A>6=B>C>D>E>F>G>H>I>J>a>K>L>M>N>O>w;P>Q>R>h>S>T>U>l>V>",
"W>X>Y>Z>`> ,H+-@;@I+J+.,+,@,#,$,%,&,*,=,-,;,>,,,7=',),!,~,{,],^,J>/,K>(,_,N>O>w;:,Q>R><,[,},|,1,V>2,",
"3,Y>8 4,5,6,-@;@I+J+b@c@7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,J>p,q,(,r,s,t,u,:,Q>R>h>v,w,x,y,V>z,A,",
"Y>8 B,C,D,E,F,h+J+b@c@d@e@G,H,I,J,K,L,M,N,O,P,Y*Q,R,S,T,U,V,W,X,q,Y,r,s,t,u,:,Z,`, 'v,.'+'@'V>#'A,$'",
"8 B,0 a b %'&'J+*'c@d@e@M@N@='-';'>',''')'!'l*Z*~'{']'^'/'('_':'<'r,['t,u,}'Z,`, 'v,|'1'2'3'#'A,$'$'",
"9 0 a b 4'5'6'7'8'd@9'M@N@n#0'a'b'c'd'e'f'g'h'i'a=P=:-j'k'l'm'n'o'p'q'u,r's'`, 'v,|'t'u'v'#'A,$'$'$'",
"0 B C c d w'x'y'z'm#M@A'n#o#a'q#T#B'C'D'E'F'G' =H'Q=I'J'K'L'M'N'O'q'u,r's'P'Q'R'|'t'u'S'T'$'$'$'$'$'",
"B C c d e @.D U'V'W'S#X'o#p#q#T#}$|$Y'Z'`' ).)+)c=@)[-D-];#)U=$)G-%)&)*)P'=)R'-);)>)S'T'$'$'$'$'$'$'",
"5.c d [email protected].#.,)')O@{#p#w$x$}$y$Y'%%))!)~){)])^)/)()E-g=F-1-G-/;&)_)P':)R'<)[)>)S'})$'$'$'$'$'$'$'",
"[email protected].#.9.|)1)2)3)4)x$}$y$z$%%))R%~){)5)6)/)7)E-|-F-^;G-/;&)_)8):)R'<)[)>)S'})$'$'$'$'$'$'$'$'",
"..+..+++F.@+9.G.9)0)a)b)c)d)b%z$d%))R%e)f)g)6)h)7)E-|-v;^;w;/;$>_)8):)i)j)k)l)m)n)$'$'$'$'$'$'$'$'$'",
"+..+++F.3+9.4+#+5+o)p)q)r)s)t)A$&%R%S%f)g)6)h)7)u)v)v;^;w;/;$>%><,w)x)j)k)y)z)n)$'$'$'$'$'$'$'$'$'$'",
".+++k+3+9.l+#+5+o)S+A)k@B)C)D)E)*%F)G)g)H)h)7)u)I)v;J)w;/;Q>%>h>w)K)L)M)N)O)P)$'$'$'$'$'$'$'$'$'$'$'",
"Q)R)O+P+l+#+5+S)S+T)k@U)V)W)X)Y)Z)`) !.!+!t*@!v)#!$!%!:,&!*!&>=!},x,-!3'O);!$'$'$'$'$'$'$'$'$'$'$'$'",
"R)O+>!l+m+Q+R+S+~@k@U),!'!)!!!~!{!]!^!/!^*(!$=_!:!<![!}!|!1!2!j>U>1,3'3!;!$'$'$'$'$'$'$'$'$'$'$'$'$'",
"4!>!l+!@Q+R+j@~@5!U)6!'!)!7!8!9!0!a!V%b!c!v*%=d!e!f!g!h!i!j!=>k>k!V>#'A,$'$'$'$'$'$'$'$'$'$'$'$'$'$'",
"l!m!n!Q+R+R@~@S@T@_#'!X#7!8!9!0!a!o!p!q!(*w*&=k=r!5-s!t!u!v!w!k!x!#'A,$'$'$'$'$'$'$'$'$'$'$'$'$'$'$'"};
EXERCISE
<?php
echo 'PHP VERSION: ' . PHP_VERSION . '<br><br>';
if (!extension_loaded('gd')) {
die("skip gd extension not available.");
}
if (!function_exists("imagejpeg")) {
die("skip jpeg support unavailable");
}
if (!function_exists("imagecreatefromxpm")) {
die("skip xpm read support unavailable");
}
$cwd = __DIR__;
$ncwd = P2JPEGN;
echo "XPM to JPEG conversion: ";
echo
imagejpeg(imagecreatefromxpm($cwd . "/conv_test.xpm"),
$ncwd . "/JPEG 017 01 (xpm2jpeg).jpg") ? 'ok' : 'failed';
echo "<br>";
// @unlink($ncwd . "/JPEG 017 01 (xpm2jpeg).jpg");
?>
RESULT conv_test.xpmXPM to JPEG conversion: ok
JPEG 017 01 (xpm2jpeg).jpg
EXERCISE
<?php
echo 'PHP VERSION: ' . PHP_VERSION . '<br><br>';
$cwd = getcwd() . '/';
$img_name = 'png/PNG 04100 02 text_xpm(xpm2png).png';
echo "XPM to PNG conversion: ";
echo imagepng(imagecreatefromxpm($cwd . "/image/conv_test.xpm"),
$cwd . $img_name) ? 'ok' : 'failed';
echo "<br><br>";
echo '<img src="' . $img_name .
'" alt="' . $img_name . '" title="' . $img_name . '">';
?>
RESULT conv_test.xpmXPM to PNG conversion: ok
PNG 024 02 (xpm2png).png
/* XPM */
static char * teapot_xpm[] = {
"234 149 34 1",
" c #FFFFFFFFFFFF",
". c #FFFF9191AAAA",
"X c #DADA9191AAAA",
"o c #FFFFB6B6AAAA",
"O c #FFFFB6B6FFFF",
"+ c #FFFFDADAFFFF",
"@ c #FFFFDADAAAAA",
"# c #B6B66D6DAAAA",
"$ c #B6B66D6D5555",
"% c #6D6D48485555",
"& c #91916D6D5555",
"* c #91916D6DAAAA",
"= c #B6B69191AAAA",
"- c #919148485555",
"; c #B6B691915555",
": c #DADA6D6DAAAA",
"? c #484848485555",
"> c #6D6D24245555",
", c #6D6D6D6D5555",
"< c #DADAB6B6AAAA",
"1 c #91914848AAAA",
"2 c #FFFF9191FFFF",
"3 c #DADA9191FFFF",
"4 c #DADA6D6D5555",
"5 c #DADA91915555",
"6 c #DADAB6B6FFFF",
"7 c #484824245555",
"8 c #919191915555",
"9 c #6D6D4848AAAA",
"0 c #B6B64848AAAA",
"q c #6D6D6D6DAAAA",
"w c #6D6D48480000",
"e c #6D6D24240000",
"r c #484848480000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .... ",
" ...XoO++++O+o+o... ",
" O.O+.++++O+++O++++++O. ",
" XoO@O+O++++++++++++++++X ",
" OXO+++++++++++++++++ ++++# ",
" O$XoOo+o+++++++ + + + + +o ",
" %##X.oOO+++++ + + + O.. ",
" %%%&#X.ooO@+++ +++++O.. ",
" %%%%$*=X...OoOOOOoO... ",
" %%%%%-&*##;:XXXXX#.. ",
" %%%%%%-&&#&#$#$#$. ",
" ?%%%%%%-*&*&#&*&. ",
" >%?%%-,-*$#&#$% ",
" .....**&%%%%-*&#$=#=X+OX....... ",
" .... ++++++ ++++oX?%%-*$#XXXXX.oOoO..oOOoOoO.... ",
" ...+ +++++O++o+OOOOoOoOO-%-*XXoooOooOOoo.oOooX:XXXXXXX.oo=... ",
" ..++..++OO+OoOooOOoO@Oo+O+oX&&#XoOO+O++O@O+O+OOOO+O@O+OoXXX*$##==.o.. ",
" ..++++++OOoOooO@OO+O@O+oOO+ooO.XXX.oO++ ++++O+o++@O@+O+o++++O+OXX%-&*#=.O. ",
" ...++++OOoOoOo+o+O+O@Oo+OoO+ooOoOoOoOoO+++ + +++++O+O+O++++O+O+@O+@O+o=&%%%&#<O. ",
" ..++OoOoOoOoOO@OO+O@Oo+O+oO+oOO+oOO+++O++++++++ +++++++++++++o+++@+O++O+++O+O+OX&%>%&XX. ",
" +++oooOoOo+O+o+O+o+oO+O+oO+o+O@O+O+@++++++++++ ++ + + ++++++++++O+O++++++O++++o++O+=&%%*XX. ",
" X+Oo..OoOOo+O@O+o+O+O++o+O+o+O+O++o++O+++++++++++ ++ +++++++++++++++++++o+++@O++++++o+Oo1%-&Oo. ",
" o+o.XoOoOo+O+oO+O+o+o+o+O+o++O+@+O++++++++++++++ ++++++ ++ ++++++++++++++++++++++O++++++++o%%&XO ",
" O+.XXOoOO+O@O+O+o+O+O+O+O+++O+@O+++++O++++++++++++++ + ++++++ ++++++++++++++++++++++@O+++O+++X%-X+. ",
" X+.XXoOOo+o+O+o+O+@O+@O+@+O@O++++O+@O+++++++++++++++++++++ ++++++++++++++++++++++++++++++++++O+o*$+@ ",
" #o+.XOoOo+O+O@O++o+O++O++O+++++o++++++++@+++++++++++ ++++++++++++ ++++++++++++++++++++++++++++++++-O+X ",
" XoOooOoO+o+o+O+o++O+@O+@O++o+O+++O+++++++++++++++++++++++ ++++ +++++++++++++++++++++++++++++++++++oO+O. ",
" $X.OOoOoOO+O+O@++O++O++++++++++++++++O+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++O+++o ",
" OOOOOOOoOoOoOOOOOOOOOO .*=.o+OoO@O@O@+O+O+o+++O+O+o++O++O+@+++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++O++++O ",
" OOoO+++++++++++++++++++++++++O@O+$$#XoOO+OO+O+O++O@+++O@++@++++++@+++O+++++++++++++++++++++++++ ++++++ +++++++++++++++++++++++++++++++++++X ",
" OOO++++++++++++++++++++++++++++++++o*$=XX.@+o+o++@O+++O++++O+++O+++O+++++++++++++++++++++++++ +++++++++ ++++++++++++++++++++++++++ +O+++++++oO .+++++++O+O+O+o+O@+O. ",
" OOO++++++++O++++++++++++++++++++++++++#&#$#XX.O+++O+++O++++o++++O++++++++++++++++++++++++++++++++++++++++++++++++ ++ ++++ +++++ + + +O++++ ++++++X ..OoOoo.OoOOOOoOo+O+++oO+O ",
" =o++O+O@OO@O+o+O+O++++++++++++++++++++o&*$*=#XXo.O@++O+@++O+++++++++++++++++++++++++++++++++++++++++ ++++ ++++++++++++++ ++++ +++++++++ + +++++++Oo. XOO++++++++++@++++++++ ++. ",
" XOoOoOoOO@OO@OOo+oOoOoOoOo+OO+O+O+O+O++:*$#$#;XXXXo2ooO++O+@++++O+++++++++++++++++++++++++++++++ ++++++++++++++ ++ ++ +++++ +++ ++++++ + ++ + +++++OX XoooOoOoOoOOoO+O+O+++oO:. ",
" XooOoOoOooOoo.oo..Xo.o.ooOo.oooooOooOoOo$&*$#=##=XXX.o2ooOo+O+O+++++++++++++++++++++++++++++++++++++ +++ +++ + +++++++++ + +++++++ + + + ++++++++o+o. XX.O.oooOoOoOoOoo.oX$#- ",
" .XX.OooOo.XXX:=##*&*-&*&##$#=#####$OOOXX#&#&#$#;X$XXXXXo.ooOoOo+o++@O++o+++++++++++++++++++++++ +++ +++++++ ++++++ + + + ++++++ + + + + + + + +++++++OX XX.<.O.O.OoOooOo.XX#&- ",
" =X.O.o.XX##&- OO$*&##;##=:=:XXXXX2.o.OoOoOoO+o++++O@O++o+++++++++++++++++ ++++ + ++++ + +++ +++ + + + + + + + ++ +++ +++++O@o =XXX.o.OooOooO.o.XX#- ",
" O#X.o.3X#&-%% O&$*$*#;#X;X=XXXXXX<.O.ooOoOoOOoOO@+O+++++++++++++++++++++O+++++++ + ++ + + + + + + + + + ++ + +++++++OO. #XXX.<2oo2oO.O.oX..&. ",
" .#Xo2<XX$*%? $*&#$#;#=#X#XX=XXXX.XXo2.o2oOooO@OOo+oO+o+O+++++++++++++++++ + + ++ + + + + + + + + + + + + + ++++++++++oO =#XXXXoo2oOoOoo.X... ",
" .XXoo..=#&& *$*$*$#=4=:;X:XXXXXXoX.<.ooooOoOoOoOO+o+O+@O++O+++++++++++ ++ + + + + + + + ++ ++ + ++++++O+o. $=XXXo2oOoOoo2.X.. ",
" .=.OoOo.XX# %&*$*$=#$=#XX=XXXXX.XX2<.3.O.O.OoOoOoOo+Oo+O+o++@++++++++ ++ + + + + + + + + ++ ++ ++++++Oo #=:XX.oOoOoOo2oXX. ",
" .XXoOOoO.XX #&$*$##;#X;#X:=XXXXXXoX.<.o.OooOoOoOo+Oo+OO@O++O+O++++++++ ++ + + + + + + + + + + +++++++++o+O &#;XXo2oOoOoOo.X. ",
" .XoOoOOoOo. %&*$*#$#=##X=5XXXXXXXXX.6.o3o.O.oOoOoOoOOo+o++O@++++++++++++ + + + + + + + + + ++ + ++++++O+X *$=XX.oOoOoOo.oX. ",
" .=.O+++O@Oo *$*&#$=$#;X$X#X=:XXXX.<X.Xo.Oo.OoOoOoOo+o+O+O@O+O+o+++++++ +++ + + + + + + + + + + ++ +++++++OoO *$XXXo2oOoOoOoX. ",
" .XoO+o++OOo ?$&*$#&#=#=#X=X:X5XXXXX.3oXO.o2ooOoOoOoOOoO@O+O+O@+++O+++++++ ++ + + + + + + ++ + ++++++++++oX $*=:X.OoOoOOoO.. ",
" .#.o+++++oOo &*-#&##$=$X$X#X;XXXXXX.<X.oXO.oOo.OoOoO@O+OO@O@O++O+++++++++++ + + + + + + + + + + +++ ++++++O+OO *$#XXoOoO+o+ooX. ",
" .&XO++++++Oo #&$*$#;##=#X=5:XX=XXXXX.X6..oo2oOoOoOoOOoO@OO+O@O++O+@++++++ +++ + + + + + + + + + + ++ +++++@+o. *&#;XooOoO@OoO.. ",
" *.oO+++++Oo %&*&#&##;#5#=:=X=XXXXX.X<..<2<2oo.OoOoOoO@OO@O@O++o+++O++++++++ + + + + + + + + + ++ +++++++++O+OX $*;XX2oOO+OOoOX ",
" -XO@++++++Oo *$1$*$#$#=#5#XX#XXXXXXXX.3o.o.oO.OoOoOoOoOo+O+O+o++O+++++++++ +++ + + + + + + + + ++ + ++++++O@O $*$#X.oOo+o+oO.. ",
" #.O++ ++++.. *&&#&#$=#;#=X$XXX:XXXX.X<.XOXO.oOoo2oOoO+OOo+o+O+O++o++++++++++ + + + + + + + + + + + + +++++++++++Oo. &&#=X.Oo+O+oOo. ",
" &XO+++ +++oo &#&*$#&#=$#X#X=X#5XXXXXX.XOX.o.Oo.OoOoOoOoo+Oo+O@O+@O+++O++++++++ + + + + + + + + ++ + + ++++++O++O $*$#XXoOO+o+OoO. ",
" .Xo++++ ++OO &*-$*$#$#=#;X$XXXX=XXXXX<.Xo.Oo.OoOoOoOoO+Oo+Oo+O+O+++O+++++++ +++ + + + + + + + + +++ ++ +++++oOo. #&#=X.Oo+O+oOo. ",
" $.O+ +++++Oo 7&$*&#*$=#;#=:=:=XXXXXX.X.3oXOXoO.o.OoOoOooO+o+O+o+@O++@+++++++++ ++ + + + + + + + + + + + ++++++++++++o. #&*$XXoOO@+O+oO. ",
" Xo++ ++++O &*-*$*$#$=#5#=5=:5=XXXXXX<.Xo.o2ooOoOoOoOO+oOO@O+O+O+@O+++++++++ ++ + + + + + + + + + + + + +++++++O+Oo #&#=X.oO@O+@Oo. ",
" &.O++ + +++. &#&&#&#=#$=#X#X:=X:XXXXX.Xo3.6.o2o2oOoOoOoOo+oO+o+o++O++O+++++++++ + + + + + + + + + +++ ++ ++++++o+O. #&#$=X.OO++O+Oo. ",
" .=oO+ + ++Oo 7&&1&#$*$#=$=$X=5XXXXXXXXX.Xo.o.OoooOoOoOoO@OO+o+O++O++++++++++++ +++ + + + + + + + + + + ++ ++++++++OoX #$*$=:XoO@O+@Ooo. ",
" #XO++ + +++O# &*-$*&#$#;##X#X#X#X=XXXX.<3oXOXo.O.Oo2oOoOoOo+oO+oO@+o+O@+O++++++++ + + + + + + + + + ++ + ++++++++O++Oo ;#$#=XXoOo++O+oO. ",
" .XoO+ + +++o &$*&*$*$##;#;#5=XXXXXXXXX.X.<.O.OooOooOoOo+OOo+O+O+O++O++++++++++ ++ + + + + + + + + + + + +++ ++ +++++o+O. &#*$=#XXoOO+O@OOo. ",
" .Xo++ + +++o 7&1&-#&##8##=:=:=:;X:XXXXXXoX2o.o.O.oOoOoOOoO@OO@O@O@O+++O++++++++++ ++ + + + + + + + ++ + +++++++++O+oX =#$=#;XX.Oo++++Ooo ",
" &.O+ + +++Oo &*&*&*$*$#;#;#X;:=XX=XXXX.X.<.<2oOoOo2oOoOoOoO+oO+O++O@O+@++++++++ ++ + + + + + + + + + + + +++ ++++++++o+o =X#X#;#XXXoOO@O+o+o# ",
" .*.++ + ++++o &-&-#&#$###;#X#X=:XXXXXXXXo3.O.o.o.oOoOoOoO@OoO+o+o+O++++O++O++++++++ + + + + + + + + + + ++ + +++++++O+OOo. ..XXXX;XXXXX.Oo++++OoO. ",
" .#oO + ++++O *&1&&#&#&;##=$=4=X;:XXXXXX.<.Xo3o2oO.OoOoOoOO+oO+O+o+o+O++++@+++++ +++ + + + + + + + + + + + ++++ +++++++@OO. ..X..X.XXXXXXXXoO+O+O@Oo. ",
" .Xo+ +++++O 7&-&*-*$###;#$X#X#XX=XXXXX.X.<2o.oOo.OooOoOoO@OO@O@O+O+O@+O@+++++++++ ++ + + + + + + + + + + ++ ++++ ++++O++oooo.OoOoOoXoXXXXXX.Oo+@++OOo# ",
" .XO+ +++++O %&*-&#&#&$##=#=4=X$XX:=XXXX<.XoXO.o2ooOoOoOOoOo+OO+o+O@+O+++O+++++++ ++ + + + + + + + + + + ++ + +++++++O@OOOO+oOoOoOo2oX.X.<OoO+O+o+oo. ",
" .XO+ +++++O -&-*&*$*$#8#$X#=:=X=XX5XX.X.6.O.oO.oOoOoOoOoO+oO@Oo+O+O+++O+++++++++++ + + + + + + + + + + ++ + ++++++++++++O+++oO+OoOOoOo.3oXO.Oo+O++OoO. ",
" &XO+ +++++OX &*-&1&#&##$=#;#5=:=:5XXXXXXX.<.<.oOo.Oo2oOoOoOO@O+O+o++o++@+++++++++ +++ + + + + + + + + + + +++ + +++++++O+o+++++++ ++Oo.Oo.o.Oo+O@+o+Oo. ",
" &XO+ ++++++X 7&-*-&&#&#&#$=#=#5=4=X#XXXXoXoX2o2o.OooOoOoOo+oOOo+o+O+O+O+O++O++++++++ ++ + + + + + + + + + + + ++++ ++++++++++++++++OooOo.o3oOo+O++O+oO. ",
" &XO+ + ++++o7%&&-*&1&#&#=#$#5#=:=XXXXXXXX2Xo.<.Oo.O.OoOoOoOO@O+OO@O@+O@+++++++++++ ++ + + + + + + + + + + + + ++ +++++++++O+O++O@O+oOOoOoOooOOO@O+O@OOo$ ",
" &XO+ +++++++&1&%&1&$*$#$#=$=:=X#X#XXXXX.<.3o2o.OoOooOoOoOo+oOo+o+O+O++O+o++++++++++++ + + + + + + + + + ++ ++ ++ ++ +++++@+O@+O+oO@OoOo2oOoo+O+@O+oo. ",
" -Xo+ +++++&-*-&&*&#&#&=$#=$=4=X5XXXXXX.<.<.o2o.oOoOoOoOOoO+oO+O@O@O+@++++++++++ + ++ + + + + + + + + + + ++ ++ ++++++++O+O++O+oO+OoOoOoOoOOO+o+O+OOo# ",
" >#oO + + O&1&%*-*$*$#$#=#5#X=:=X:XXXX.X2<.OXoOo2oOoOoOo+OoO+o+O+O++O+O++O+++++++++ ++ + + + + + + + + + + + + + +++ +++++++++o++O+oOoOoOoOoOoO@O+O@Ooo. ",
" 7#oO+ + +3&&-&-*-&#&*#$#;#=#5=:=XXXXX<.<..<2o.Ooo2oOoOoOo+oO+o+o+O@+O++++++++++++++ + + + + + + + + + + + ++ ++ +++++++++O+O@O@O+o+OoOoOO@O+O@O+OoOo# ",
" -XO++ + <1&9-,&*&*$#$=$##;:#X=5XXXXX.X2<2o.oO.oOoOoOoOoOO+oO+O+o+O+@+O+@+++++++ +++ + + + + + + + + + + + + ++ +++ ++++++++o+O+OoOOoOo+O@OO@OO+oOoOoX ",
" ?#o++ +6-&-,1-&0&#&#&#=$=#=4X#XXXXXX<.Xo.O.oO.oOoOoOoO@Oo+Oo+O+O@O++++O+++++++++ +++ + + + + + + + + + + + + ++ + ++ ++++ +++++O+o+oO+o+o+OoOOo+O@Oo+oOo.% ",
" -XO++ =-,1-&*-&*$*$#=$#=4==XX=XXXX.XO.XoXO.oOo2ooOoOoOoOo+Oo+o+++O+o++++++++++ ++ ++ + + + + + + + + + + ++ ++ ++ [email protected] ",
" %#.O+&1&%,--*&&*$*$##;#=:#X#XXXXXX.Xo3o.oO.oOoOoOoOOo+OO@O+O+OO@+O++++O++++++++++ + + + + + + + + + + + + + ++ + ++ ++ ++++++++O+OO@O+oO@O+oOoO@O@OOoOooX% ",
" 7%=.&-%&-q-&1&#&#$*;##;#5=X5:XXX.<X.o2o.oO.oOoOoOoOoO@OO@O@O@+O+++O++++++++++ + ++ + + + + + + + + + + + + + + + ++ ++++++++++++o+OoO+oO@OO@OOOoOoOoo2X& ",
" %&1,1%-%&-&*-#&#$##;:=:=:XXXXXX.6.Xo3o2oOo.OoOoOoOOo+oO+O+O+O@O+@+++++++++++++ ++ + ++ + + + + + + + + + + +++ + +++ ++ ++++++O+oO+oO+OoOoOo+oOoOoO.oX ",
" -&%&%*%*-&*$*$*;##=$X=X=XXXXXX.<2o.o.o.OoOoOoOoO@OO+oO@O@O+++O+O+@O++++++ +++ ++ + + + + + + + + + + + ++ + + +++ ++++++++++++oOO@[email protected]# ",
" %1&%%-&-*&&*$*$#$=$=:;:XXXXX.<X.Xo3oO.OoO.oOoOoOOoOo+OO+O@O+o++++++++++++++ ++ ++ ++ + + + + + + + + + + + ++ +++ +++ ++ +++++++O+oOoOoOOoOoOoOoOo.oXXX ",
" %%-%&%9&-*-$*$*#$#=#X#X=:XXXX.3oX.o.oOo.oOoOoOoOo+oOO@O@O+O++O@O+++++++++++++++ ++ + + + + + + + + + + ++ + ++ + ++ ++++++++++++++oOoOoOooOoOoo.o.2XX# ",
" 7,-%9%-,-&*&*$*$=#$=$X=5XXXXXX<.<2<2.o2oOoOoOoOoOoO@OO@O+o+o++++O++O++++++++ +++ + + + + + + + + + + + + + ++ ++ ++ ++ +++++++++O+OoOoOooOoo.o2o2.<XX# ",
" -%,-%%-q--*&&#&#$=#X#X#XXXXX.X.Xo.<o2oo2oo2oOoOo+OO@OO@O+O+O@O+@++@++++++++++ ++++ ++ + + + + + + ++ ++ ++ + + ++ +++++ ++++++++o+oo.o2o.2o2.X.XXX#$ ",
" ,1%%%&%-&*-&#&#$=#;#5=XX=XXXX<2X.6.o.Ooo2oOoOoOOoOoO@OO+o+o+O++O+O+++++++++ +++ + + ++ + + + + + + ++ ++ + ++++ +++ ++++++++++O++OO.O.o.<.XX<XXX=#$ ",
" %%%-%%%*%&&1&#&#$##=:=4=:XXXX.XoX.O.o.OoOooOoOoOo+OoO+o+O+O++o++++++++++++++++++++++ ++ +++ +++ ++ + + + ++ + +++ +++ [email protected]=#=$% ",
" ?-%%%%%-%*-&*$*$#=$=$X=XXXXXXX<.6.<.O.o2oOoOoOoOoOo+Oo+Oo+o+O+O+o+O++O++++++++ + + ++ ++ + + + + ++ ++ ++ ++++ ++++++++++++++O++O@OXXXXXX=X#$#$% ",
" %%%%%%%&-*-&*$*$#=#X#X#5XXXX.XX.Xo3o.Oo.o2oOoOoO@Oo+Oo+O+O+@O+++++@++++++++++++++++ ++ ++++ ++++ ++ ++ +++ +++ ++ +++++++++++O@OOoX#=#=#$#&*- ",
" %%%%%%%%%&*-$*$#$#;#;:=X#XXXXXoXO.o.O.oOooOoOoOoOOOo+Oo+o+O+O@O+o+O+++++++++++++ ++++ ++ + ++ + + +++ ++ ++ +++++++++++++++O+O+oOo#$#$$*&&- ",
" 7%%%%%%%&--*&*$*#;##=X$XXXXXXXX.XXOXoo2o2ooOoOoOoo+oOo+OO@O@O++O++++O+++++++++ ++++ +++++++ ++ ++++ +++++++++ ++++++++++++O+o+oOOoX&&1&%%7 ",
" %%%%%%%%9&-*&#&##;#$X=:=XXXX.<3o.Xo2o.ooO.OooOoOOoOO+oO@O+O+o++o+O+@+O+++++++++++++++ + +++ +++ ++++ + + ++++++ ++++++++O++O+OooO$%% ",
" ?%%?%%%%&%&-*&#$#$=##X;X:XXXXX.X<2oXoO.OoOo2oOoOoO@OoO+Oo+o+O+O++@O++++++++++++++++ +++++ +++++++ +++++++++ +++++++++++++O@OoOoO.* ",
" %>%%>%%%1&&-*$*$#=$=:=:=XXXXXX.XoX2o.o2o.oOoOoOoOOo+oO@OO+O@O@O+O++O+@O+++++++++++++++++++++ +++++ +++++++++++++++++O+O+oO+oOooX ",
" %%?%%%%%%-*&&*$*$#=$=4=X5XXXXX<.XoXo2oo2oOoOoOoOoOoOOoO+o+o+O+O@+O+@O+++++++++++++++++++++ ++++ ++++++ ++++++++++++O++o+OoOoOo.* ",
" %%>?%%%%,-1&&#&#$##=#X#X=XXXX.3X.OXo.Oo.o2ooOoOoOo+o+OoO+OO@O+O+@O+++O+O++++++++++++++ +++++++++++++++++++++++++O++O+Oo+OoOo.= ",
" ?%w%%%%%%&1&&#&#;#$=$X#XXXXXXXoX.XOX.oOoo2oOoOoOoOOoO+oO@O+o+o+O+O+O@+++O++++++++++++++++++++++++++++++++++++O++O+o+oOoOoo.X% ",
" %%7%%%%%-&1&*$*$#;#=#5=:XXXXXXo3o.oO..O.oO.oOoOoOoOoO@OO@O+O+O@O+@++O+@++O++++++++++++++++++++++++++++++++O++O+o+Oo+Ooo2.X- ",
" 7%%%?%%%%%&-&*&#&##;:=:=XXXXXXX.X<.XOo.OooOoOoOoOo+oOOo+OoO@O+O@O+O+@O+O+@+O++++++++++++++++++++++++++O+O++O+o+OoOoOoO.oX= ",
" %%>%%%%%%*-&*$*$##;#;:=4=XXXX<.3o.XoO.o2oO.oOoOoOOo+oOo+OO@O+O+o+O+O+@O+++O+O+++++++++++++++++++O+O++++O@[email protected]# ",
" %%?%>?%%%-,-&1$*$##=#5=XXXXXXXX.Xo2Xo.Oo.oOoOoOoOoOoOO+oO@OoO@O+O@[email protected]# ",
" %%%%%%%%%-1&&*&*$$#;##=:=XXXXXXXXoXO.o.O.o2ooOoOoOoOoOoOOO+oO+oO+o+o+o+O+O@O@+O@+++++O++O++++OO@OO@O+oOoOoOoOo..<XX# ",
" %?w>%%%%%%%-&-&*$##$=$X#XXXXX.<2X.Xo3o.Ooo2ooOooOoOoOo+ooO+oO+oO+O+O+o+o+O+O++O+Oo+O@O+@[email protected]$ ",
" %%?%7%%%%%q-*&*&*$##=$=4=:XXXXXX<.X.<.o2oo2o.OoOoOoOoOoOoOoOo+oOoO@OO+O+o+o+o+o++O+O@OO+OO+o+OoO+oOoOoOo.O.XXX## ",
" %>%%%?%%%%%--&*&*$&##$=#=X=XXXXXXXo3.Xo2o.Oo.OooOoOoOoOoO+oOOO@O@OO@OoO+OO+OO+oO@[email protected]#$ ",
" ?%%%>%%%%%%%-&-&*$#$##;#$X#XXXXXXXXoX.Xo.o2o.O.oOooOoOoOoOooOoOOoOoO+oOo@OooOO@[email protected]#$& ",
" ?%%?%>%%%%%1&-*&&*$#$#=$=#=:XXXXXXXX.3<..o.o2o.O.oOoOooOoOoOoOoOoOoOoOOoO+oOoOoOoOoOooOoOo.o2o.XXXXX=#=&% ",
" %%e%?%%%%%%%&-1&&*&#$##;:;#=:=XXXXXXX.XX3oX.o.o2o.o.Oo.OoOooOoOoOoOooOoOoOoOoOoOoOoOo.o..O.XXXXXX=##$&7 ",
" ?%%%?%%%%%%%&-1&&*&$#$##;#;:=:=XXXXXXXXX.<3.Xo.O.o.Oo.o.OooOoooOoOoOooOooOoo2o.o..o2.<XXXXXXX##$#&% ",
" %%>w%7%%%%%%%,--&1&*&#&###;#=:=XXXXXXXXXXXXoXXX.6...O.o.2o.O.O.o.o.O.o2o..o.o2.<.XXXXXXX=:=$#&#&7 ",
" ?%%%%?%%%%%%%1%&-&*&#&$#$#$=$#=#X=XXXXXXXXXXXX.X<XX.3oX..o..o.2o..o..Xo3.XXXXXXXXXX=:#$#&#&&% ",
" 7%%?>%%7%%%%%%%%*%-&&*&*&#$##;#;#:=#=:=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=X##$=$*$*&- ",
" %%%%%%%%>%%%%%%-%-%-&&*&*&$#$#$=$#;#X#=#X=XX=XXXXXXXXXXXXXXXXXXXXXXXXX=X=:=###$=$*$*&-%% ",
" %?e%?%?%%?%%%%%%q-%--&-*&*&#&#$#$#$#$=$:##X##=#X#X=X=X=X=X=X=X=:==###$#;#$=$*&*&-%%*? ",
" 7%%%>%%%>%%%%%%%%%%9-,-&-*&*&*&#&#&#$#$=$#;#$=$=$#$#####$###$#=#$=$=$#&#&&*---%&*- ",
" 7%r%%?%%?>?%%%%%%%%%%1%--&-&-&*&&*&*&#&#&#$#$##$=$#;$#=$$#=$$#$*$&*&*-&-%&%*&7 ",
" %>%w>%%%%7%%%%%%%%%%%%%-9&%-&1&-&*&&&*&&*&&*&#&*$*&&*&&&*&*&-*----,9-&*-% ",
" %%?%w%%%7%?%%%%%%%%%%%%%%-%&1---*--*-&1&&-*&-&-*-&1&1---,-%%,%*-&#? ",
" 7%?>%%w%%>?%7%%%%%%%%%%%%%%,%%-,-%-%&%1&%-*%&-%&-%&%,%1%&1&##% ",
" %%?>%%%%%%?%%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-%-1&&*#=% ",
" r%%%%w>%%>%?%%%?%%%%%%%%%%%%%%%%-%%-%*&*&*#==-%% ",
" 7 -%,%%%%%%%%%%%%%%%%&9&-*&*&###$##%%% ",
" ?7 777 7777?7?77?7?>?%? ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};
EXERCISE
<?php
echo 'PHP VERSION: ' . PHP_VERSION . '<br><br>';
$cwd = getcwd() . '/';
$img_name = 'png/PNG 04100 03 teapot(xpm2png).png';
echo "XPM to PNG conversion: ";
echo imagepng(imagecreatefromxpm($cwd . "/image/teapot.xpm"),
$cwd . $img_name) ? 'ok' : 'failed';
echo "<br><br>";
echo '<img src="' . $img_name .
'" alt="' . $img_name . '" title="' . $img_name . '">';
?>
RESULT teapot.xpmXPM to PNG conversion: ok
PNG 025 03 (xpm2png).png
EXERCISE
<?php
echo 'PHP VERSION: ' . PHP_VERSION . '<br><br>';
$cwd = __DIR__;
$cwda = P2IGDN;
$cwdb = P2GD2N;
echo "$cwd <br> $cwda <br> $cwdb <br><br>";
echo "XPM to GD conversion: ";
echo imagegd(imagecreatefromxpm($cwd . "/conv_test.xpm"),
$cwda . "/GD 005 04 (xpm2gd).gd") ? 'ok' : 'failed';
echo "<br>";
echo "XPM to GD2 conversion: ";
echo imagegd2(imagecreatefromxpm($cwd . "/conv_test.xpm"),
$cwdb . "/GD2 006 04 (xpm2gd2).gd2") ? 'ok' : 'failed';
echo "<br>";
// @unlink($cwda . "/GD 005 04 (xpm2gd).gd");
// @unlink($cwdb . "/GD2 006 04 (xpm2gd2).gd2");
?>
RESULT
XPM to GD conversion: ok
XPM to GD2 conversion: ok