Ich versuche, einen Colorpicker zu machen. Mein Code stoppt nach den getImageData. Ich konnte die Lösung nicht finden ...Code stoppt nach getImageData
Gibt es eine andere Möglichkeit, den Wert des Pixels zu erhalten? Oder das Problem ist, dass ich versuche, einen Link für das Bild zu verwenden?
> function drawImage() {
> var image = new Image();
> image.src = imageSrc;
> image.onload = function() {
> context.clearRect(0, 0, canvas.width, canvas.height);
> context.drawImage(image, 0, 0, image.width, image.height);
>
> $('#cPicker').mousemove(function(e) {
> if (previewOn)
> {
> var canvasOffset = $(canvas).offset();
> var x = Math.floor(e.pageX - canvasOffset.left);
> var y = Math.floor(e.pageY - canvasOffset.top);
>
> alert(x + ', ' + y);
>
> var imageD = context.getImageData(x, y, 1, 1);
> var pixel = imageD.data;
>
> var pixelColor = 'rgb(' + pixel[0] + ', ' + pixel[1] + ', ' + pixel[2] + ')';
> $('preview').css('backgroundColor', pixelColor);
>
> $('#rValue').val(pixel[0]);
> $('#gValue').val(pixel[1]);
> $('#bValue').val(pixel[2]);
> $('#rgbValue').val(pixel[0]+','+pixel[1]+','+pixel[2]);
>
> var dColor = pixel[2] + 256 * pixel[1] + 65536 * pixel[0];
> $('#hexValue').val('#' + ('0000' + dColor.toString(16)).substr(-6));
> };
> });
>
> $('#cPicker').click(function(e) {
> previewOn = !previewOn;
> });
> };
};