Я создал фильтр-плагин для Snap, который предназначен для возврата дискретных значений 1 для пикселя со значениями (> = 0,5,> = 0,5,> = 0,5) и 0 для значений (< 0.5, < 0.5, < 0.5)Дискретные значения (0/1) из оттенков серого
В качестве вспомогательного средства для отладки я использую линейный градиент от белого до черного.
В этом градиенте, крайние левые пиксели (1,1,1), самые правые пиксели (0,0,0) и центр пикселей (0.5,0.5,0.5)
Поэтому, я ожидал, приложенное плагин рассекать градиент в середине оставляя половину его полностью белым, а половина ее полностью черный, но мой выход возвращает неправильные значения, как показано на рисунке ниже:
Как видите, около трети градиента белого цвета, а две трети - черные, а не равная доля черно-белого.
Вот мой код:
Snap.filter.discrete()
Snap.filter.discrete = function() {
var str = "0 1"
return Snap.format('<feComponentTransfer>' +
'<feFuncR type="discrete" tableValues="' + str + '"/>' +
'<feFuncG type="discrete" tableValues="' + str + '"/>' +
'<feFuncB type="discrete" tableValues="' + str + '"/>' +
'</feComponentTransfer>');
};
Где я ошибся?
Фидл: https://jsfiddle.net/z7a49npn/1/
Это сработало для меня! Я этого не ожидал !! Вы добавили годы в мою жизнь. Спасибо! –