summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules <jules@asdf.us>2015-04-22 13:54:19 -0400
committerJules <jules@asdf.us>2015-04-22 13:54:19 -0400
commit1eed611c931d0b386c9c336d01b2644e97331ac0 (patch)
tree87cd78e9dfd56119859b856688cf61ad6743c554
parent3b5fd66c6b69b00199c73764012f9563254f0fe4 (diff)
hmm its in a weird stateHEADmaster
-rw-r--r--index.html2
-rw-r--r--smartblur.js110
2 files changed, 56 insertions, 56 deletions
diff --git a/index.html b/index.html
index d20ab0b..f41af1f 100644
--- a/index.html
+++ b/index.html
@@ -1,7 +1,7 @@
<style>
canvas { display: inline-block; }
</style>
-<body><input type="text" id="url_el"><div id="img_el"></div></body>
+<body><input type="text" placeholder="paste a URL" id="url_el"><div id="img_el"></div></body>
<script src="convolve.js"></script>
<script src="smartblur.js"></script>
<script src="fetch.js"></script>
diff --git a/smartblur.js b/smartblur.js
index 181b1b4..1a6cebb 100644
--- a/smartblur.js
+++ b/smartblur.js
@@ -5,7 +5,7 @@ SmartBlurFilter = function () {
var REGION_SIZE = 5
var edge_zero_fill = true
- var kx = -((REGION_SIZE/2)|0), ky = -((REGION_SIZE/2)|0), klen = REGION_SIZE*REGION_SIZE
+ var kx = -((REGION_SIZE/2)|0), ky = -((REGION_SIZE/2)|0), klen = REGION_SIZE*REGION_SIZE
var kernelArray = [
1,1,1,1,1,1,1,1,1,
@@ -29,31 +29,31 @@ SmartBlurFilter = function () {
function rmsError(src, i, size) {
var ave = 0;
- var len = size*size, data = src.data
+ var len = size*size, data = src.data
- var ix, iy
- var r,g,b,a
- var w = src.width, h = src.height
- ix = i%w
- iy = (i/w)|0
- it = i * 4
- r = g = b = a = 0
- for (var j = 0; j < klen; j++) {
- jx = ix + j%size + kx
- jy = iy + ((j/size)|0) + ky
- jt = 4 * (jx + jy*w)
- if (0 > jx || jx > w || 0 > jy || jy > h) {
- if (edge_zero_fill) {
- continue
- }
- jt = it
- }
- r += data[jt]
-// g += data[jt+1]
-// b += data[jt+2]
-// a += data[jt+3]
- }
- r /= klen
+ var ix, iy
+ var r,g,b,a
+ var w = src.width, h = src.height
+ ix = i%w
+ iy = (i/w)|0
+ it = i * 4
+ r = g = b = a = 0
+ for (var j = 0; j < klen; j++) {
+ jx = ix + j%size + kx
+ jy = iy + ((j/size)|0) + ky
+ jt = 4 * (jx + jy*w)
+ if (0 > jx || jx > w || 0 > jy || jy > h) {
+ if (edge_zero_fill) {
+ continue
+ }
+ jt = it
+ }
+ ave += data[jt]
+// g += data[jt+1]
+// b += data[jt+2]
+// a += data[jt+3]
+ }
+ ave /= klen
// g /= klen
// b /= klen
// a /= klen
@@ -61,48 +61,48 @@ SmartBlurFilter = function () {
var diff = 0
var accumulator = 0
- for (var j = 0; j < klen; j++) {
- jx = ix + j%size + kx
- jy = iy + ((j/size)|0) + ky
- jt = 4 * (jx + jy*w)
- if (0 > jx || jx > w || 0 > jy || jy > h) {
- if (edge_zero_fill) {
- continue
- }
- jt = it
- }
- diff = data[ jt ] - ave
- diff *= diff
- accumulator += diff
+ for (var j = 0; j < klen; j++) {
+ jx = ix + j%size + kx
+ jy = iy + ((j/size)|0) + ky
+ jt = 4 * (jx + jy*w)
+ if (0 > jx || jx > w || 0 > jy || jy > h) {
+ if (edge_zero_fill) {
+ continue
+ }
+ jt = it
+ }
+ diff = data[ jt ] - ave
+ diff *= diff
+ accumulator += diff
}
- var rms = accumulator / klen
- rms = Math.sqrt(rms) / 255
+ var rms = accumulator / klen/10
+ rms = Math.sqrt(rms) // / 255
return rms
}
function lerpPixel( src, dest, blur, i, amt) {
- dest[i] = lerp(src[i], blur[i], amt)
- dest[i+1] = lerp(src[i+1], blur[i+1], amt)
- dest[i+2] = lerp(src[i+2], blur[i+2], amt)
- dest[i+3] = lerp(src[i+3], blur[i+3], amt)
+ dest[i] = lerp(src[i], blur[i], amt)
+ dest[i+1] = lerp(src[i+1], blur[i+1], amt)
+ dest[i+2] = lerp(src[i+2], blur[i+2], amt)
+ dest[i+3] = lerp(src[i+3], blur[i+3], amt)
}
function blurImage( src, dest, blur, sensitivity ) {
var newPixel = 0
var amt = 0
var size = REGION_SIZE
- var w = src.width, rms
+ var w = src.width, rms
- var srcData = src.data
- var destData = dest.data
- var blurData = blur.data
+ var srcData = src.data
+ var destData = dest.data
+ var blurData = blur.data
for (var i = 0, len = srcData.length/4; i < len; i++) {
- rms = rmsError(src, i, size)
-
-// amt = rms < sensitivity ? rms/sensitivity : 1.0
- lerpPixel( srcData, destData, blurData, i*4, rms)
+ rms = rmsError(src, i, size)
+ amt = rms < sensitivity ? rms/sensitivity : 1.0
+if (1000<i&&i<1100)console.log(rms,amt)
+ lerpPixel( srcData, destData, blurData, i*4, rms)
}
return dest
@@ -127,12 +127,12 @@ SmartBlurFilter = function () {
// blur the cloned image
dest = convolver.filter(src, dest);
- destctx.putImageData(dest, 0,0)
+ destctx.putImageData(dest, 0,0)
var blurred = destctx.getImageData(0,0,w,h)
var dest = srcctx.getImageData(0,0,w,h)
dest = blurImage(src, dest, blurred, SENSITIVITY)
- destctx.putImageData(dest, 0,0)
+ destctx.putImageData(dest, 0,0)
return dest_canvas
}
-} \ No newline at end of file
+}