diff --git a/lib/ice-coder.js b/lib/ice-coder.js index 832d9df..a33bb1b 100644 --- a/lib/ice-coder.js +++ b/lib/ice-coder.js @@ -27,6 +27,7 @@ var ICEcoder = { serverQueueItems: [], // Array of URLs to call in order stickyTab: false, // Target variable for the sticky tab window pluginIntervalRefs: [], // Array of plugin interval refs + overPopup: false, // Indicates if we're over a popup or not ready: false, // Indicates if ICEcoder is ready for action // Set our aliases @@ -1240,6 +1241,56 @@ var ICEcoder = { } }, + // Draw a canvas image based on actual img node image src + drawCanvasImage: function (imgThis) { + var canvas = document.getElementById('canvasPicker').getContext('2d'); + var img = new Image(); + img.src = imgThis.src; + img.onload = function() { + document.getElementById('canvasPicker').width = imgThis.width; + document.getElementById('canvasPicker').height = imgThis.height; + canvas.drawImage(img,0,0,imgThis.width,imgThis.height); + } + + // Show pointer colors on mouse move over canvas + document.getElementById('canvasPicker').onmousemove = function(event) { + // get mouse x & y + var x = event.pageX - this.offsetLeft; + var y = event.pageY - this.offsetTop; + // get image data & then RGB values + var imgData = canvas.getImageData(x, y, 1, 1).data; + var R = imgData[0]; + var G = imgData[1]; + var B = imgData[2]; + var rgb = R+','+G+','+B; + // Get hex from RGB value + var hex = top.ICEcoder.rgbToHex(R,G,B); + // set the values & BG colours of the input boxes + document.getElementById('rgbMouseXY').value = rgb; + document.getElementById('hexMouseXY').value = '#' + hex; + document.getElementById('hexMouseXY').style.backgroundColor = document.getElementById('rgbMouseXY').style.backgroundColor = '#' + hex; + }; + // Set pointer colors on clicking canvas + document.getElementById('canvasPicker').onclick = function() { + document.getElementById('rgb').value = document.getElementById('rgbMouseXY').value; + document.getElementById('hex').value = document.getElementById('hexMouseXY').value; + document.getElementById('hex').style.backgroundColor = document.getElementById('rgb').style.backgroundColor = document.getElementById('hex').value; + } + }, + + // Convert RGB values to Hex + rgbToHex: function(R,G,B) { + return top.ICEcoder.toHex(R)+top.ICEcoder.toHex(G)+top.ICEcoder.toHex(B); + }, + + // Return numbers as hex equivalent + toHex: function(n) { + n = parseInt(n,10); + if (isNaN(n)) return "00"; + n = Math.max(0,Math.min(n,255)); + return "0123456789ABCDEF".charAt((n-n%16)/16) + "0123456789ABCDEF".charAt(n%16); + }, + // Insert new color value insertColorValue: function(color) { var cM, cursor;