Created
March 30, 2017 01:27
-
-
Save dev001hajipro/12838c53ea72e98398a9f3c5a35bc398 to your computer and use it in GitHub Desktop.
pixel sort // source https://jsbin.com/nuyezac
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width"> | |
<title>pixel sort</title> | |
</head> | |
<body> | |
<h1>Pixel sort</h1> | |
<canvas id="c" width="640" height="320"></canvas> | |
<script id="jsbin-javascript"> | |
var canvas = document.getElementById('c'), | |
ctx = canvas.getContext('2d'), | |
img; | |
img = new Image(); | |
img.crossOrigin = "Anonymous"; | |
img.onload = function() { | |
// left side original image (320x320). | |
ctx.drawImage(img, 0, 0); | |
var imageData = ctx.getImageData(0, 0, 320, 320); | |
var data32 = new Uint32Array(imageData.data.buffer); | |
// Compare brightness. | |
data32.sort(function(p1,p2) { | |
var r1 = p1 >> 0 & 0x000000FF; | |
var g1 = p1 >> 8 & 0x000000FF; | |
var b1 = p1 >> 16 & 0x000000FF; | |
var L1 = r1 + g1 + b1 / 3; | |
var r2 = p2 >> 0 & 0x000000FF; | |
var g2 = p2 >> 8 & 0x000000FF; | |
var b2 = p2 >> 16 & 0x000000FF; | |
var L2 = r2 + g2 + b2 / 3; | |
return L1 - L2; | |
}); | |
ctx.putImageData(imageData, 320, 0); | |
}; | |
img.src = 'https://upload.wikimedia.org/wikipedia/commons/c/cc/Arnljotl%C3%A4gden.jpg'; | |
</script> | |
<script id="jsbin-source-javascript" type="text/javascript">var canvas = document.getElementById('c'), | |
ctx = canvas.getContext('2d'), | |
img; | |
img = new Image(); | |
img.crossOrigin = "Anonymous"; | |
img.onload = function() { | |
// left side original image (320x320). | |
ctx.drawImage(img, 0, 0); | |
var imageData = ctx.getImageData(0, 0, 320, 320); | |
var data32 = new Uint32Array(imageData.data.buffer); | |
// Compare brightness. | |
data32.sort(function(p1,p2) { | |
var r1 = p1 >> 0 & 0x000000FF; | |
var g1 = p1 >> 8 & 0x000000FF; | |
var b1 = p1 >> 16 & 0x000000FF; | |
var L1 = r1 + g1 + b1 / 3; | |
var r2 = p2 >> 0 & 0x000000FF; | |
var g2 = p2 >> 8 & 0x000000FF; | |
var b2 = p2 >> 16 & 0x000000FF; | |
var L2 = r2 + g2 + b2 / 3; | |
return L1 - L2; | |
}); | |
ctx.putImageData(imageData, 320, 0); | |
}; | |
img.src = 'https://upload.wikimedia.org/wikipedia/commons/c/cc/Arnljotl%C3%A4gden.jpg';</script></body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var canvas = document.getElementById('c'), | |
ctx = canvas.getContext('2d'), | |
img; | |
img = new Image(); | |
img.crossOrigin = "Anonymous"; | |
img.onload = function() { | |
// left side original image (320x320). | |
ctx.drawImage(img, 0, 0); | |
var imageData = ctx.getImageData(0, 0, 320, 320); | |
var data32 = new Uint32Array(imageData.data.buffer); | |
// Compare brightness. | |
data32.sort(function(p1,p2) { | |
var r1 = p1 >> 0 & 0x000000FF; | |
var g1 = p1 >> 8 & 0x000000FF; | |
var b1 = p1 >> 16 & 0x000000FF; | |
var L1 = r1 + g1 + b1 / 3; | |
var r2 = p2 >> 0 & 0x000000FF; | |
var g2 = p2 >> 8 & 0x000000FF; | |
var b2 = p2 >> 16 & 0x000000FF; | |
var L2 = r2 + g2 + b2 / 3; | |
return L1 - L2; | |
}); | |
ctx.putImageData(imageData, 320, 0); | |
}; | |
img.src = 'https://upload.wikimedia.org/wikipedia/commons/c/cc/Arnljotl%C3%A4gden.jpg'; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment