One possible solution...
1. UniImage1.ClientEvents...
function mousedown(sender, x, y, eOpts)
{
var me=sender;
if (!me._img) {
var src = me.getEl().down('img').dom.src;
var imgMain = me.getEl().down('img');
me._img = new Image();
me._canvas = document.createElement('canvas');
$(me._img).load(function() {
me._canvas.width = imgMain.getWidth();
me._canvas.height = imgMain.getHeight();
me._canvas.getContext('2d').drawImage(me._img, 0, 0, me._canvas.width, me._canvas.height);
//console.log(x, y, me._canvas.getContext('2d').getImageData(x, y, 1, 1).data);
var rgbData = me._canvas.getContext('2d').getImageData(x, y, 1, 1).data;
ajaxRequest(me, 'getColorRGB', ['r='+rgbData[0], 'g='+rgbData[1], 'b='+rgbData[2]]);
});
me._img.src = src;
} else {
//console.log(x, y, me._canvas.getContext('2d').getImageData(x, y, 1, 1).data);
var rgbData = me._canvas.getContext('2d').getImageData(x, y, 1, 1).data;
ajaxRequest(me, 'getColorRGB', ['r='+rgbData[0], 'g='+rgbData[1], 'b='+rgbData[2]]);
}
}
2. UniImage1.OnAjaxEvent
procedure TMainForm.UniImage1AjaxEvent(Sender: TComponent; EventName: string;
Params: TUniStrings);
begin
if EventName = 'getColorRGB' then
UniPanel1.Color := RGB(Params.Values['r'].ToInteger(),
Params.Values['g'].ToInteger(),
Params.Values['b'].ToInteger());
end;