more tweaks to unsharp mask

This commit is contained in:
Bryan Housel
2017-11-30 16:19:06 -05:00
parent b1efcf83b2
commit 53225f08ec
3 changed files with 31 additions and 25 deletions
+10 -8
View File
@@ -2662,7 +2662,17 @@ img.tile {
user-select: none;
opacity: 0;
}
img.tile-loaded {
opacity: 1;
}
img.tile-removing {
opacity: 0;
}
div:not(.layer-mask) > img.tile {
-webkit-transition: opacity 200ms linear;
transition: opacity 200ms linear;
-moz-transition: opacity 200ms linear;
@@ -2696,14 +2706,6 @@ img.tile-debug {
outline: 1px solid red;
}
img.tile-loaded {
opacity: 1;
}
img.tile-removing {
opacity: 0;
}
/* Map
------------------------------------------------------- */
+18 -15
View File
@@ -1,6 +1,7 @@
import _find from 'lodash-es/find';
import { dispatch as d3_dispatch } from 'd3-dispatch';
import { interpolateNumber as d3_interpolateNumber } from 'd3-interpolate';
import { select as d3_select } from 'd3-selection';
import { data } from '../../data';
@@ -22,11 +23,17 @@ export function rendererBackground(context) {
function background(selection) {
var baseFilter = '';
var blur, contrast;
if (_brightness !== 1) {
baseFilter += 'brightness(' + _brightness + ')';
}
if (_sharpness !== 1) {
baseFilter += 'contrast(1.25)';// + _sharpness + ')';
if (_sharpness < 1) { // gaussian blur
blur = d3_interpolateNumber(0.5, 5)(1 - _sharpness);
baseFilter += 'blur(' + blur + 'px)';
} else if (_sharpness > 1) {
contrast = d3_interpolateNumber(1, 1.5)(_sharpness - 1);
baseFilter += 'contrast(' + contrast + ')';
}
var base = selection.selectAll('.layer-background')
@@ -52,30 +59,26 @@ export function rendererBackground(context) {
var maskFilter = '';
var mixBlendMode = '';
if (_sharpness !== 1) {
var blur = Math.abs(_sharpness - 1) * 10;
maskFilter += 'blur(' + blur + 'px)';
if (_sharpness > 1) { // apply unsharp mask
mixBlendMode = 'overlay';
maskFilter = 'saturate(0)';
if (_sharpness > 1) {
maskFilter += 'invert(1)';
mixBlendMode = 'overlay';
} else {
mixBlendMode = 'normal';
}
blur = d3_interpolateNumber(3, 0.5)(_sharpness - 1);
maskFilter += 'blur(' + blur + 'px) invert(1)';
// var contrast = 1 / (_sharpness || 0.1);
maskFilter += 'contrast(0.75)';// + contrast + ')';
contrast = d3_interpolateNumber(0, 1)(_sharpness - 1);
maskFilter += 'contrast(' + contrast + ')';
}
var mask = base.selectAll('.layer-unsharp-mask')
.data(_sharpness !== 1 ? [0] : []);
.data(_sharpness > 1 ? [0] : []);
mask.exit()
.remove();
mask.enter()
.append('div')
.attr('class', 'layer layer-unsharp-mask')
.attr('class', 'layer layer-mask layer-unsharp-mask')
.merge(mask)
.call(baseLayer)
.style('-webkit-filter', maskFilter || null)
+3 -2
View File
@@ -10,6 +10,7 @@ import {
select as d3_select
} from 'd3-selection';
import { d3keybinding as d3_keybinding } from '../lib/d3.keybinding.js';
import { t, textDirection } from '../util/locale';
@@ -71,7 +72,7 @@ export function uiBackground(context) {
d = d3_event.target.value;
}
d = clamp(d, 0.5, 2);
d = clamp(d, 0.25, 2);
context.background().sharpness(d);
_displayOptions.selectAll('.sharpness-input')
@@ -299,7 +300,7 @@ export function uiBackground(context) {
.append('input')
.attr('class', 'sharpness-input')
.attr('type', 'range')
.attr('min', '0.5')
.attr('min', '0.25')
.attr('max', '2')
.attr('step', '0.05')
.property('value', _sharpness)