Есть ли режим наложения, чтобы заменить черный и сохранить другие цвета (например, белый)? - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу создать динамически окрашенный маркер карты в flutter_svg

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;" height="100%" version="1.1" viewBox="0 0 24 24" width="100%"  xmlns="http://www.w3.org/2000/svg"  xml:space="preserve">
    <g transform="matrix(1,0,0,1,4,0)">
    <path style="fill:rgb(0,0,0);" d="M8.25,0C3.689,0 0,3.756 0,8.4C0,14.7 8.25,24 8.25,24C8.25,24 16.5,14.7 16.5,8.4C16.5,3.756 12.811,0 8.25,0Z"/>
    <path style="fill:rgb(255,255,255);" d="M8.25,11.4C6.624,11.4 5.304,10.056 5.304,8.4C5.304,6.744 6.624,5.4 8.25,5.4C9.876,5.4 11.196,6.744 11.196,8.4C11.196,10.056 9.876,11.4 8.25,11.4Z"/>
    </g>
</svg>

, который выглядит следующим образом:

Marker

IЯ экспериментирую с Blend Modes .

Если я использую это:

SvgPicture.asset(
      "assets/images/to_marker.svg",
      package: "trufi_core",
      color: const Color(0xff27ae60),
      colorBlendMode: BlendMode.difference,
    )

белый цвет становится прозрачным:

result

Есть ли даже режим наложения, который просто заменяет черный цветом и оставляет белый нетронутым или мне нужно использовать замену цвета?

Есть ли другой способ заменитьцвет в flutter_svg, может быть с CSS?

1 Ответ

0 голосов
/ 02 ноября 2019

Путем перебора (пробуя все режимы) я обнаружил, что BlendMode.screen работает для этого случая

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...