| Index: experimental/webtry/res/js/webtry.js
|
| diff --git a/experimental/webtry/res/js/webtry.js b/experimental/webtry/res/js/webtry.js
|
| index de81df4d709e80583db193da75ac554c342c9878..3514a001966c2ed547d4b907247faef1490b15a2 100644
|
| --- a/experimental/webtry/res/js/webtry.js
|
| +++ b/experimental/webtry/res/js/webtry.js
|
| @@ -97,31 +97,37 @@
|
| ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
| var x = clientX - currentImage.x;
|
| var y = clientY - currentImage.y;
|
| - ctx.drawImage(currentImage,
|
| - x, y, // src zero
|
| - PIXELS, PIXELS, // src dimensions
|
| - 0, 0, // dst zero
|
| - ctx.canvas.width, ctx.canvas.height); // dst dimensions
|
| + var dx = Math.floor(ctx.canvas.width/PIXELS);
|
| + var dy = Math.floor(ctx.canvas.height/PIXELS);
|
| +
|
| + ctx.lineWidth = 1;
|
| + ctx.strokeStyle = '#000';
|
| +
|
| + // Draw out each pixel as a rect on the target canvas, as this works around
|
| + // FireFox doing a blur as it copies from one canvas to another.
|
| + var colors = canvasCopy.getContext('2d').getImageData(x, y, PIXELS, PIXELS).data;
|
| + for (var i=0; i<PIXELS; i++) {
|
| + for (var j=0; j<PIXELS; j++) {
|
| + var offset = (j*PIXELS+i)*4; // Offset into the colors array.
|
| + ctx.fillStyle = 'rgba(' + colors[offset] + ', ' + colors[offset+1] + ', ' + colors[offset+2] + ', ' + colors[offset+3]/255.0 + ')';
|
| + ctx.fillRect(i*dx, j*dy, dx-1, dy-1);
|
| + // Box and label one selected pixel with its rgba values.
|
| + if (hex && i==PIXELS/2 && j == PIXELS/2) {
|
| + ctx.strokeRect(i*dx, j*dy, dx-1, dy-1);
|
| + hex.textContent = 'rgba('
|
| + + colors[offset] + ', '
|
| + + colors[offset+1] + ', '
|
| + + colors[offset+2] + ', '
|
| + + colors[offset+3] + ') '
|
| + + hexify(colors[offset])
|
| + + hexify(colors[offset+1])
|
| + + hexify(colors[offset+2])
|
| + + hexify(colors[offset+3]);
|
| + }
|
| + }
|
| + }
|
| lastClientX = clientX;
|
| lastClientY = clientY;
|
| - // Box and label one selected pixel with its rgba values.
|
| - if (hex) {
|
| - ctx.lineWidth = 1;
|
| - ctx.strokeStyle = '#000';
|
| - var dx = ctx.canvas.width/PIXELS;
|
| - var dy = ctx.canvas.height/PIXELS;
|
| - ctx.strokeRect((PIXELS/2)*dx, (PIXELS/2)*dy, dx, dy);
|
| - var p = canvasCopy.getContext('2d').getImageData(x+PIXELS/2, y+PIXELS/2, 1, 1).data;
|
| - hex.textContent = 'rgba('
|
| - + p[0] + ', '
|
| - + p[1] + ', '
|
| - + p[2] + ', '
|
| - + p[3] + ') '
|
| - + hexify(p[0])
|
| - + hexify(p[1])
|
| - + hexify(p[2])
|
| - + hexify(p[3]);
|
| - }
|
| }
|
| setTimeout(drawZoom, 1000/30);
|
| }
|
|
|