package Ġru . ser dj uk . z xs na . app . palette Ċ Ċ import Ġcom . badlogic . gdx . graphics . Color Ċ import Ġcom . badlogic . gdx . graphics . Pixmap Ċ import Ġcom . badlogic . gdx . graphics . Texture Ċ import Ġcom . badlogic . gdx . math . Rectangle Ċ import Ġru . ser dj uk . z xs na . app . resources . hex Color 2 5 6 Ċ import Ġru . ser dj uk . z xs na . app . resources . hex Color 5 1 2 Ċ import Ġru . ser dj uk . z xs na . app . system . res Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . math . min Ċ Ċ @ Experimental Unsigned Types Ċ object ĠPalette Utils Ġ{ ĊĊ Ċ // ĠĠĠ Ġfun Ġconvert Palette To (): ĠByteArray Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcom . badlogic . gdx . utils . ByteArray () Ċ // ĠĠĠĠĠĠĠ Ġval Ġba Ġ= Ġcom . badlogic . gdx . utils . ByteArray () Ċ // ĠĠĠĠĠĠĠ ĠArray < String >( 1 6 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= ĠStringBuilder () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġba . clear () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( 1 6 ) Ġ{ Ġindex Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠconvertTo 9 bpp ( Palette Data . palette Tables . user Table [ it Ġ* Ġ 1 6 Ġ+ Ġindex ]. color Id ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbit 9 Ġ= Ġc Ġand Ġ 2 5 6 Ġshr Ġ 8 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbyte Ġ= Ġc Ġand Ġ 2 5 5 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġadd Ġhex Ġvariation Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr . append ("$ byte , Ġ$ bit 9 , Ġ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġba . add ( byte . to Byte (), Ġbit 9 . to Byte ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġresult . addAll ( ba ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstr . toString () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġresult . toArray () Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġconvert Palette From ( byteArray : ĠByteArray ) Ġ{ Ċ //// ĠĠĠĠĠĠĠ ĠPalette Data . palette Tables . user Region . flip ( false , true ) Ċ // ĠĠĠĠĠĠĠ Ġ// ĠÐµÑģÐ»Ð¸ ĠÐ± Ð¸ÑĤ Ġ 9 bpp ĠÐ² ÐºÐ»ÑİÑĩ ÐµÐ½ ĠÑĤÐ¾ ĠÑĥ Ð¼ Ð½ Ð¾Ð¶ Ð°ÐµÐ¼ ĠÐ¿ÐµÑĢ Ð² ÑĭÐ¹ ĠÐ± Ð°Ð¹ ÑĤ ĠÐ½Ð° Ġ 2 Ġ+ Ġ 1 Ċ // ĠĠĠĠĠĠĠ ĠPalette Data . palette Tables . user Table . forEach Indexed Ġ{ Ġid , Ġcell Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Id Ġ= Ġif Ġ( byteArray [ id Ġ* Ġ 2 Ġ+ Ġ 1 ]. to U Byte (). toInt () Ġ== Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbyteArray [ id Ġ* Ġ 2 ]. to U Byte (). toInt () Ġ* Ġ 2 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbyteArray [ id Ġ* Ġ 2 ]. to U Byte (). toInt () Ġ* Ġ 2 Ġ+ Ġ 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcell . color Id Ġ= Ġcolor Id Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcell . hex Color Ġ= Ġhex Color 5 1 2 [ color Id ]. hex Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Cell Fill ( Palette Data . palette Tables . user Table [ id ], Ġhex Color 5 1 2 [ color Id ]. int ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ //// ĠĠĠĠĠĠĠ ĠPalette Data . palette Tables . user Region . flip ( false , true ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġres . texture Update () Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconvert Image ( encoded Data : ĠByteArray , Ġcolors Number : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġres . dispose Upload Image () ĊĠĠĠĠĠĠĠ Ġval Ġpix map Ġ= ĠP ix map ( encoded Data , Ġ 0 , Ġencoded Data . size ) ĊĠĠĠĠĠĠĠ Ġ// ĠFIXME ĠÐ¿ÑĢÐ¸ ĠBl ending . NONE ĠÐ¿Ð¾Ð»ÑĥÑĩ Ð°Ñİ ĠÐ¿ ÑĥÑģÑĤ ÑĭÐµ ĠÐ¿ Ð¸Ðº Ñģ ÐµÐ»Ð¸ Ġ( Ð´ Ð¾ Ñħ Ñĥ Ñı , ĠÐºÐ°Ðº ĠÐ½Ð° ĠÑĢÐµ Ð°Ð» Ðµ ) ĊĠĠĠĠĠĠĠ Ġ// ĠÐ¿Ð¾ ÑħÐ¾Ð´ Ñĥ ĠÑģ ĠÐ° Ð»ÑĮ ÑĦ Ð¾Ð¹ ĠÐ· Ð°Ð» ÑĥÐ¿ Ð° Ċ // ĠĠĠĠĠĠĠ Ġpix map . bl ending Ġ= ĠP ix map . Bl ending . None ĊĠĠĠĠĠĠĠ Ġres . upload Image Pixmap Ġ= Ġpix map ĊĠĠĠĠĠĠĠ Ġlazy Ġ{ ĠconvertTo Next Colors ( res . upload Image Pixmap !! , Ġcolors Number ) Ġ}. value ĊĠĠĠĠĠĠĠ Ġlazy Ġ{ Ġres . upload Image Texture Ġ= ĠTexture ( res . upload Image Pixmap ) Ġ}. value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaverage Byte ( int : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Ġ= Ġ 2 5 5 ĊĠĠĠĠĠĠĠ Ġvar Ġr Ġ= Ġ 2 5 5 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġall Bytes . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min ( abs ( all Bytes [ i ] Ġ- Ġint ), Ġm ) Ġ< Ġm ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Ġ= Ġmin ( abs ( all Bytes [ i ] Ġ- Ġint ), Ġm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġall Bytes [ r ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaverage Blue Byte ( int : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Ġ= Ġ 2 5 5 ĊĠĠĠĠĠĠĠ Ġvar Ġr Ġ= Ġ 2 5 5 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġblue Bytes . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min ( abs ( blue Bytes [ i ] Ġ- Ġint ), Ġm ) Ġ< Ġm ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Ġ= Ġmin ( abs ( blue Bytes [ i ] Ġ- Ġint ), Ġm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġblue Bytes [ r ] ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ĠÐ´Ð»Ñı Ġ 2 5 6 ĠÑĨ Ð²ÐµÑĤ Ð¾Ð² ĠÑģ Ð¸Ð½ Ð¸Ð¹ ĠÑģ Ð¾ÑģÑĤ Ð¾ Ð¸ÑĤ ĠÑĤÐ¾Ð»ÑĮÐºÐ¾ ĠÐ¸Ð· Ġ 4 - Ñħ ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ð¹ ĊĠĠĠ Ġprivate Ġval Ġblue Bytes Ġ= Ġint ArrayOf ( 0 x 0 0 , Ġ 0 x 6 d , Ġ 0 xb 6 , Ġ 0 xff ) ĊĊĠĠĠ Ġ// ĠÐ´Ð»Ñı Ġ 5 1 2 ĠÑĨ Ð²ÐµÑĤ Ð¾Ð² Ġrgb ĠÐ¸Ð¼ Ðµ ÑİÑĤ ĠÐ¿Ð¾ Ġ 8 ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ð¹ ĊĠĠĠ Ġprivate Ġval Ġall Bytes Ġ= Ġint ArrayOf ( 0 x 0 0 , Ġ 0 x 2 4 , Ġ 0 x 4 9 , Ġ 0 x 6 d , Ġ 0 x 9 2 , Ġ 0 xb 6 , Ġ 0 xdb , Ġ 0 xff ) ĊĊĠĠĠĠ Ġvar Ġready For Save Image : ĠByteArray ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġfun ĠconvertTo Next Colors ( pix map : ĠP ix map , Ġcolors Number : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġready For Save Image Ġ= ĠByteArray ( pix map . width Ġ* Ġpix map . height ) ĊĠĠĠĠĠĠĠ Ġvar Ġbyte Counter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġrepeat ( pix map . height ) Ġ{ Ġy Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( pix map . width ) Ġ{ Ġx Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġpix map . get Pixel ( x , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠÐ´Ð¾Ð±Ð°Ð² Ð¸ÑĤÑĮ ĠÐ ¤ Ð» Ð¾Ð¹ Ð´Ð° ĠâĢĵ ĠÐ¡ ÑĤ ÐµÐ¹ Ð½ Ð± ÐµÑĢ Ð³ Ð° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐ¿ÐµÑĢ ÐµÐ¼ Ð½ Ð¾Ð¶ Ð°ÐµÐ¼ ĠÑĨ Ð²ÐµÑĤ Ð° ĠÑģ ĠÐ° Ð»ÑĮ ÑĦ Ð°Ðº Ð°Ð½ Ð°Ð» Ð¾Ð¼ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa C Ġ= Ġ(( color Ġand Ġ 2 5 5 )) Ġ/ Ġ 2 5 5 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr C Ġ= Ġ( color Ġ ush r Ġ 2 4 Ġand Ġ 2 5 5 ) Ġ/ Ġ 2 5 5 f Ġ* Ġa C ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg C Ġ= Ġ( color Ġ ush r Ġ 1 6 Ġand Ġ 2 5 5 ) Ġ/ Ġ 2 5 5 f Ġ* Ġa C ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb C Ġ= Ġ( color Ġ ush r Ġ 8 Ġand Ġ 2 5 5 ) Ġ/ Ġ 2 5 5 f Ġ* Ġa C ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐ¸ Ñī ÐµÐ¼ ĠÑĥ Ñģ ÑĢÐµÐ´ Ð½ ÐµÐ½ Ð½ÑĭÐ¹ ĠÑĨ Ð²ÐµÑĤ ĠÐ´Ð»Ñı ĠÐº Ð°Ð¶Ð´ Ð¾Ð³Ð¾ ĠÐº Ð°Ð½ Ð°Ð»Ð° Ġr , g , b ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġaverage Byte (( r C Ġ* Ġ 2 5 5 f ). toInt ()) Ġand Ġ 2 5 5 Ġshl Ġ 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġaverage Byte (( g C Ġ* Ġ 2 5 5 ). toInt ()) Ġand Ġ 2 5 5 Ġshl Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġif Ġ( colors Number Ġ== Ġ 5 1 2 ) Ġaverage Byte (( b C Ġ* Ġ 2 5 5 ). toInt ()) Ġand Ġ 2 5 5 Ġshl Ġ 8 Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaverage Blue Byte (( b C Ġ* Ġ 2 5 5 ). toInt ()) Ġand Ġ 2 5 5 Ġshl Ġ 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhex Ġ= ĠStringBuilder (( r Ġor Ġg Ġor Ġb Ġor Ġ 2 5 5 ). to UInt (). toString ( 1 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( hex . length Ġ< Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhex . insert ( 0 , Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġready For Save Image ! ![ byte Counter ++] Ġ= Ġhex Color 2 5 6 . indexOf First Ġ{ Ġit . hex Ġ== Ġhex . toString () Ġ}. to Byte () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" HEX Ġ= : Ġ$ hex ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġhex Color 2 5 6 . find Ġ{ Ġit . hex Ġ== Ġhex . toString () Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( h Ġ== Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ r Ġor Ġg Ġor Ġb Ġor Ġ 2 5 5 }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (( r Ġor Ġg Ġor Ġb Ġor Ġ 2 5 5 ). toString ( 1 6 )) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Ðĺ ÐĶ Ðĺ ĠÐĿ ÐĲ ĠÐ ¥ Ðŀ Ð Ļ ĠÐ ¦ ÐĴ Ðķ Ð¢ Ġ!!! !") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐµÑģÐ»Ð¸ ĠÑĨ Ð²ÐµÑĤ ĠÐ¿Ð¾Ð»ÑĥÑĩ Ð¸Ð» ÑģÑı ĠÐ¿Ð¾Ð» Ð½Ð¾ÑģÑĤ ÑĮÑİ ĠÐ¿ÑĢ Ð¾Ð· ÑĢÐ° Ñĩ Ð½ÑĭÐ¼ ĠÑĤÐ¾ ĠÑģÑĤ ÑĢÐ¸ Ð°ÐµÐ¼ ĠÐ¿ Ð¸Ðº Ñģ ÐµÐ»ÑĮ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r Ġor Ġg Ġor Ġb Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpix map . draw Pixel ( x , Ġy , ĠColor . CLEAR . toInt Bits ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpix map . draw Pixel ( x , Ġy , Ġhex . toString (). to Long ( 1 6 ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ// ĠÐ¸Ð½ Ð´ ÐµÐº Ñģ ĠÑĨ Ð²ÐµÑĤ Ð° ĠÐ´ ÐµÐ» Ð¸ÑĤ ÑģÑı ĠÐ½Ð° Ġ 2 ĠÐ¸ ĠÐµÑģÐ»Ð¸ ĠÐµ ÑģÑĤÑĮ ĠÐ¾ ÑģÑĤ Ð°ÑĤ Ð¾Ðº ĠÑĤÐ¾ ĠÐ² ÐºÐ»ÑİÑĩ Ð¸ÑĤÑĮ ĠÐ± Ð¸ÑĤ ĠÐ´Ð»Ñı Ġ 9 bpp ĊĠĠĠ Ġprivate Ġfun ĠconvertTo 9 bpp ( color Id : ĠInt ) Ġ= Ġ( color Id Ġ/ Ġ 2 ) Ġor Ġ( color Id Ġ% Ġ 2 Ġshl Ġ 8 ) ĊĊĊĠĠĠ Ġ// Ġnot Ġused , Ġbe Ġremoved ĊĠĠĠ Ġfun Ġconvert Image Area ( bounds : ĠRectangle , Ġcolors Number : ĠInt ): ĠByteArray Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= ĠByteArray (( bounds . height Ġ* Ġbounds . width ). toInt ()) ĊĠĠĠĠĠĠĠ Ġvar Ġcounter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġrepeat ( bounds . height . toInt ()) Ġ{ Ġh Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( bounds . width . toInt ()) Ġ{ Ġw Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhex Ġ= Ġres . upload Image Pixmap ?. get Pixel (( w Ġ+ Ġbounds . x ). toInt (), Ġ( bounds . height Ġ- Ġ 1 Ġ- Ġh Ġ+ Ġbounds . y ). toInt ()) ?. to UInt ()?. toString ( 1 6 ) !! Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhex Id Ġ= Ġif Ġ( colors Number Ġ== Ġ 5 1 2 ) Ġhex Color 5 1 2 . indexOf First Ġ{ Ġit . hex . contains ( hex ) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġhex Color 2 5 6 . indexOf First Ġ{ Ġit . hex . contains ( hex ) Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFIXME ĠÐ½ ÐµÐº Ð¾ÑĤÐ¾ÑĢ ÑĭÐµ ĠÑĨ Ð²ÐµÑĤ Ð° ĠÑħ Ñĥ Ð¹ Ð½ Ñİ ĠÐ¿ Ð¾ÑĢ ÑıÑĤ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġint Ġ= Ġres . upload Image Pixmap ?. get Pixel (( w Ġ+ Ġbounds . x ). toInt (), Ġ( h Ġ+ Ġbounds . y ). toInt ()) !! ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhex Ġ= ĠStringBuilder ( int . to UInt (). toString ( 1 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( hex . length Ġ< Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhex . insert ( 0 , Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġint Id Ġ= Ġif Ġ( colors Number Ġ== Ġ 5 1 2 ) Ġhex Color 5 1 2 . indexOf First Ġ{ Ġit . int Ġ== Ġint Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġhex Color 2 5 6 . indexOf First Ġ{ Ġit . hex Ġ== Ġhex . toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( int Id Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( hex ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( res . upload Image Pixmap ?. get Pixel (( w Ġ+ Ġbounds . x ). toInt (), Ġ( h Ġ+ Ġbounds . y ). toInt ()) !!. toString ( 1 6 )) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpal Id Ġ= ĠAgent . data . palette Data . indexOf ( hex Id . to Byte ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( int Id ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Color . set ( layer . pix map . get Pixel ( w Ġ+ Ġx , Ġheight Ġ- Ġ 1 Ġ- Ġh Ġ+ Ġy )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbyteArray [ counter ++] Ġ= ĠApp Color . rgba Colors . indexOf ( f Color ). to Byte () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbyteArray [ counter ++] Ġ= Ġhex Id . to Byte (). to U Byte (). to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbyteArray [ counter ++] Ġ= Ġint Id . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠbyteArray ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ