svg - 是否有混合模式来替换黑色并保留其他颜色(即白色)?
问题描述
我想在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>
看起来像这样:
我正在尝试混合模式。
如果我使用这个:
SvgPicture.asset(
"assets/images/to_marker.svg",
package: "trufi_core",
color: const Color(0xff27ae60),
colorBlendMode: BlendMode.difference,
)
白色变得透明:
是否甚至有一种混合模式只是用颜色替换黑色,并保持白色完好无损,还是我必须使用一些颜色替换?
有没有另一种方法来替换flutter_svg中的颜色,也许是用CSS?
解决方案
通过蛮力(尝试所有模式)我发现,这BlendMode.screen
适用于这种情况
推荐阅读
- html - 如何通过 ng-repeat 和按钮单击动态地将 ng-model 名称添加到动态添加的模板中?
- python - 为什么我的 small_words() 和 large_words() 函数不起作用
- php - 通过htaccess将扩展名插入没有扩展名的文件中
- android - Android:使用自定义适配器时如何从 onItemClickListener 获取数据库行 ID?
- html - 您如何嵌入 YouTube 视频中的评论?
- shell - 如何通过 ansible playbook 安装脚本交互
- flutter - Flutter Firestore 身份验证
- r - how to separate column into two columns based on a condition
- sqlite - 试图在串联后组织列的数据时卡住了
- c - 将十六进制字符串转换为 ASCII 值的函数导致段错误