Десятичные дроби в фильтрах SVG - PullRequest
0 голосов
/ 06 февраля 2019

Я не могу заставить Chrome (и Opera) использовать SVG-фильтры с десятичными значениями в радиусе.

Перейти к http://oreillymedia.github.io/svg-essentials-examples/ch11/fe_morphology.html и попробовать ввести 0 или 0,5 в поле радиуса.В Chrome нет изменений, но в Firefox эрозия работает.

У меня есть локаль с десятичной запятой, это играет роль?С запятой это интерпретируется как x, y.

Это известная проблема?Есть обходные пути?

1 Ответ

0 голосов
/ 06 февраля 2019

Ноль не является допустимым значением для атрибута radius.Чтобы процитировать спецификацию:

radius = "число-дополнительный-номер"

Радиус (или радиусы) для операции.Если указаны два числа, первое число представляет радиус х, а второе значение представляет радиус у.Если указано одно число, то это значение используется как для X, так и для Y. Значения находятся в системе координат, установленной атрибутом «primitiveUnits» в элементе «filter».Отрицательное значение - ошибка (см. Обработка ошибок).Нулевое значение отключает эффект данного примитива фильтра (т. Е. Результат представляет собой прозрачное черное изображение).Если атрибут не указан, то эффект будет таким, как если бы было указано значение 0.

Значение радиуса определяет размер матрицы свертки, используемой для обработки изображения.По определению, эта матрица должна иметь целое число столбцов и строк.Однако в спецификации неясно, следует ли округлять дроби в большую или меньшую сторону.

Похоже, что Firefox всегда округляется в большую сторону, тогда как Chrome / Webkit всегда округляется в меньшую сторону.

В любом случае дробные значенияне имеют смысла, поэтому вы всегда должны использовать целые числа.

...