Image pixel colour

This sample shows the colour where you touch an image.

Sample Code

pixel.js
var txt,orig;
//Called when application is started.
function OnStart() 
{ 
    //Create a layout with objects vertically centered. 
    var lay = app.CreateLayout( "Linear", "FillXY" );     
     
    //Create an image. 
    orig =  app.CreateImage( "/Sys/Img/Xylophone.png" );
    var img = app.CreateImage( "/Sys/Img/Xylophone.png",0.5,-1 ); 
 
    img.SetOnTouchDown(img_OnTouchDown);
    lay.AddChild( img ); 
 
    txt=app.CreateText("Touch Xylophone");
    lay.AddChild(txt);
 
    //Add layout to app.     
    app.AddLayout( lay ); 
    
} 
 
function img_OnTouchDown(ev)
{
   var color = getPixelColor(this,ev.X,ev.Y);
   txt.SetText(color);
}
 
function getPixelColor(img,x,y)
{
 
var raw = img.GetPixelData( "RawBase64",
    x*img.GetAbsWidth()*orig.GetWidth()/img.GetWidth(),
    y*img.GetAbsHeight()*orig.GetHeight()/img.GetHeight(),1,1);
//Decode the base64 encoded string
var byteArray = atob(raw);
if (byteArray.length < 4) return("?");
var r = byteArray.charCodeAt(0);
var g = byteArray.charCodeAt(1);
var b = byteArray.charCodeAt(2);
var a = byteArray.charCodeAt(3);
var col = "#" + toHex(a) + toHex(r) +toHex(g) + toHex(b);
return col;
}
 
//Return the 2 digit hex version of value, padded with
//leading zeros when required
function toHex(value)
{
    return ("00" + value.toString(16)).substr(-2);
}