V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Lentin
V2EX  ›  问与答

请问下这个任务栏显示网速的彩色图标是怎么实现的

  •  2
     
  •   Lentin · 280 天前 · 3672 次点击
    这是一个创建于 280 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看起来好像是 TrafficMonitor 但是我填入了 emoji 符号只能显示成黑白色的



    这个是我的效果,试过了修改字体还是只能显示白色的

    第 1 条附言  ·  279 天前
    第 2 条附言  ·  277 天前
    结帖,27 楼的大佬给出了解决方案🙏🙏🙏🙏
    https://www.v2ex.com/t/1018799#r_14386120
    第 3 条附言  ·  277 天前
    还有一个方法就是安装 MacType 选择一个开启了 DirectWrite 的配置文件也可以实现
    第 4 条附言  ·  237 天前
    37 条回复    2024-03-01 17:55:55 +08:00
    amanisheir
        1
    amanisheir  
       280 天前
    单独设置每个项目颜色,标签,数值都可以改颜色的
    Lentin
        2
    Lentin  
    OP
       280 天前
    @amanisheir #1 上图的图标不是纯色,是彩色……
    344457769
        3
    344457769  
       280 天前
    可以自己制作皮肤的吧。下面这个链接里有的皮肤图片就是彩色的。
    https://github.com/zhongyang219/TrafficMonitorSkin/blob/master/%E7%9A%AE%E8%82%A4%E4%B8%8B%E8%BD%BD.md
    344457769
        4
    344457769  
       280 天前
    那个彩色的图标也不一定是 emoji 字符,有可能是 emoji 图片:

    https://github.com/notopsee/Microsoft-Segoe-UI-Emoji-SVG-Icons
    Lentin
        5
    Lentin  
    OP
       280 天前
    @344457769 #3 这个皮肤是悬浮窗口的样式,图片里的是任务栏里面的样式,任务栏没有切换皮肤的功能
    Lentin
        6
    Lentin  
    OP
       280 天前
    原图在 @Linkia 的这个贴子发现的 /t/1018637
    Leez088
        7
    Leez088  
       280 天前
    是不是对方安装了什么特殊字体
    344457769
        8
    344457769  
       280 天前
    @Lentin #5 你设置的字体是 Segoe UI Emoji 吗?
    344457769
        9
    344457769  
       280 天前
    看了一下 TrafficMonitor 的 issues ,发现也有人在问这个,是 OP 吗?

    https://github.com/zhongyang219/TrafficMonitor/issues/1762
    Lentin
        10
    Lentin  
    OP
       280 天前
    @344457769 #9 不是我,字体试过是 Segoe UI Emoji 不能显示彩色
    miaomiao888
        11
    miaomiao888  
       280 天前
    字体设大点试试,忘记曾经在哪看到过相关讨论,字体小于某一数值只会显示黑白。
    Lentin
        12
    Lentin  
    OP
       280 天前
    @miaomiao888 #11 😭调大了也不行
    iold
        13
    iold  
       278 天前
    参考番茄使用插件,番茄图标就是带颜色的,所以参照开源的代码改一个应该不难。
    yucn
        14
    yucn  
       278 天前
    对方 Win11 ,你是 Win10 ?
    Lentin
        15
    Lentin  
    OP
       278 天前
    @yucn #14 我也是 win11 22H2 版本号 22631.3155
    mhqschen
        16
    mhqschen  
       278 天前
    期待答案,原帖里我也在问🤣
    Jimmyisme
        17
    Jimmyisme  
       278 天前
    你可以在 word 里面试一下。这种情况实际上就是给字体设置了颜色。如果直接打进 word 里就是彩色的,设置颜色之后就变为单色了
    Lentin
        18
    Lentin  
    OP
       278 天前
    @Jimmyisme #17 软件设置里面翻了一下只能设置纯色,貌似去不掉点色赋值
    Lentin
        19
    Lentin  
    OP
       278 天前
    @mhqschen #16 研究两天了 完全没有头绪🥹
    ysc3839
        20
    ysc3839  
       277 天前 via Android   ❤️ 1
    用的是别的软件吧? Windows 下彩色 Emoji 需要 DirectWrite 或者其他第三方字体引擎才能支持,没记错的话 TrafficMonitor 用的是 MFC+GDI ,是不支持彩色 Emoji 的。
    ysc3839
        21
    ysc3839  
       277 天前 via Android   ❤️ 1
    @ysc3839 看了下 TrafficMonitor 的代码,是有支持 DirectWrite 的,启用应该就变彩色了。
    Lentin
        22
    Lentin  
    OP
       277 天前 via iPhone
    @ysc3839 🥹 所以不知道怎么启用 大佬有头绪吗
    ChiangKaishek
        24
    ChiangKaishek  
       277 天前
    @ysc3839 #23 我试了下, 开了 Direct2D, emoji 还是单色的
    Lentin
        25
    Lentin  
    OP
       277 天前
    @ysc3839 #23 我测试的是这个版本,选择了 Direct2D 仍然是纯色的 https://github.com/zhongyang219/TrafficMonitor/pull/1656#issuecomment-1793693006
    ysc3839
        26
    ysc3839  
       277 天前 via Android
    @ChiangKaishek @Lentin
    那我就不知道了,可以提 issue 问一下
    ysc3839
        27
    ysc3839  
       277 天前 via Android   ❤️ 3
    @ChiangKaishek @Lentin
    自己测试了一下,加上 D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT 参数就可以了
    https://github.com/ysc3839/TrafficMonitor/commit/717d3afbbb836986b7f0abea8de18d87c8f3a4d5

    自动编译的版本 https://github.com/ysc3839/TrafficMonitor/actions/runs/8108536813

    有谁有空可以考虑提 PR 给源仓库
    ChiangKaishek
        28
    ChiangKaishek  
       277 天前
    @ysc3839 #27 谢谢! 这边试了, 可以显示彩色 emoji 了
    Lentin
        29
    Lentin  
    OP
       277 天前
    @ysc3839 #27 感谢大佬,选择 Direct2D 之后终于可以显示彩色 emoji 了🥹
    ysc3839
        30
    ysc3839  
       277 天前 via Android   ❤️ 1
    我用 Useful Forks https://useful-forks.github.io/ 搜索了一下有没有哪个 fork 加了这个参数,没有全部都看一遍,随便点开几个都是没加的。所以我估计原图有可能是用了 MacType 直接替换成第三方字体引擎渲染了,而第三方引擎默认是开启有颜色的 Emoji 的,就有了图中的效果。
    mhqschen
        31
    mhqschen  
       277 天前
    @ysc3839 #27 能帮忙编译个 lite 版么?谢谢!
    Lentin
        32
    Lentin  
    OP
       277 天前
    @ysc3839 #30 其实我也尝试过安装 mactype 用服务模式和手动模式 都没有成功加载彩色的 emoji ,我晚点在试一试~~
    ysc3839
        33
    ysc3839  
       277 天前 via Android
    @mhqschen 我目前没有编译环境,上面那个是用 GitHub Actions 自动编译的,可以尝试修改 GitHub Actions 的配置文件,看看能否编译 Lite 版。
    ysc3839
        34
    ysc3839  
       277 天前 via Android
    @Lentin 我目前只有 ARM64 的 Win11 环境,MacType 似乎不支持 ARM64 ,没法测试
    Lentin
        35
    Lentin  
    OP
       277 天前
    @ysc3839 #34 又试了一遍 mactype 可以实现,不知道为什么之前启用没有生效🤣
    Lentin
        36
    Lentin  
    OP
       277 天前   ❤️ 1
    @Lentin #35 我知道了,默认的 Default 配置应该是没有开启 DirectWrite ,切换了一个就可以了
    mhqschen
        37
    mhqschen  
       277 天前
    发现原帖里用寻呼机作为内存的图标,在底色下看着不像寻呼机,绿色一条是有点像内存,妙😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1393 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:43 · PVG 01:43 · LAX 09:43 · JFK 12:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.