Skip to content

关于暗黑主题下图片显示的建议 #6711

Closed
@luo-chuan

Description

@luo-chuan

在什么情况下你需要该特性?In what scenarios do you need this feature?

链滴上看到有人提到关于暗黑模式下图片显示的问题。
该用户说有透明底色的png图片在暗黑模式下的显示效果很不好,如下图:
image

描述可能的最优解决方案 Describe the optimal solution

我认为最优的解决方法就是,允许用户对每一张图片都独立设置属性,控制图片是否在暗黑模式下反色显示。
最后实现的效果大概长这样,图片是黑底,然后,页面也是黑底,非常和谐:
image

可以通过比如给图片添加css代码{filter: invert(100%)}来实现,大概像下图这样。
image

当然最好就是直接提供更方便的01开关,毕竟让用户写css代码还是有点麻烦。

描述候选的解决方案 Describe the candidate solution

并不建议通过修改或者设置图片背景色来实现,因为这样图片是白底,而页面是黑底很不和谐。如下图:
image

只能说给用户多一个选择而已。

其他信息 Other information

No response

Activity

88250

88250 commented on Nov 25, 2022

@88250
Member

有个问题是如何判断图片背景是透明的?

luo-chuan

luo-chuan commented on Nov 25, 2022

@luo-chuan
Author

有个问题是如何判断图片背景是透明的?

用户自己判断,自己控制就好。就是给每一张图片都独立设置一个选项(不统一设置,而是独立控制),是否让这张图片在暗黑模式下反色。

luo-chuan

luo-chuan commented on Nov 25, 2022

@luo-chuan
Author

有个问题是如何判断图片背景是透明的?

其实不仅仅是透明底色的png,就是普通的白底jpg图片,也有在暗黑模式下反色的需求。所以哪些图片应该在暗黑模式下反色,用户自己判断,自己决定就好。

88250

88250 commented on Nov 25, 2022

@88250
Member

@luo-chuan 能解决问题,但是感觉用户的工作量好像有点大。

luo-chuan

luo-chuan commented on Nov 25, 2022

@luo-chuan
Author

@luo-chuan 能解决问题,但是感觉用户的工作量好像有点大。

其实一篇笔记也不会有多少图片,而且也并不是所有图片都需要反色,只有像数学公式、示意图等才需要反色,像照片、截图这些就不需要反色。建议可以先实现单张的控制,后面有机会再做批量设置。

88250

88250 commented on Nov 25, 2022

@88250
Member

好的,我们考虑下。

hackerhui

hackerhui commented on Nov 28, 2022

@hackerhui

我也有个想法,就是如果方便用户的话,可以参考将网络图片下载为本地图片的操作方式,就是给一个菜单项让用户处理,如果一个笔记中图片多的话就会方便些

88250

88250 commented on Nov 28, 2022

@88250
Member

@hackerhui 不好判断哪些需要处理。

hackerhui

hackerhui commented on Nov 28, 2022

@hackerhui

@88250 用户自己判断,这个我认为自动确实实现不了,没法判断图片是否透明

88250

88250 commented on Nov 28, 2022

@88250
Member

这个感觉有点风险,很多用户可能不懂功能的作用,这个 issue 估计还是暂时搁置,需要继续考虑方案。

luo-chuan

luo-chuan commented on Nov 30, 2022

@luo-chuan
Author

这个感觉有点风险,很多用户可能不懂功能的作用,这个 issue 估计还是暂时搁置,需要继续考虑方案。

风险可以这样消除,在明亮模式下不提供这一功能,这一功能只能在暗黑模式下设置并生效。这样一来,长期使用明亮模式的不需要这一功能的用户接触不到这一功能,而在暗黑模式下,如果用户出于好奇尝试,那用户马上就能看到效果,并明白这一功能的意思。

88250

88250 commented on Nov 30, 2022

@88250
Member

@luo-chuan 我还是觉得自动识别比较好,理想中的用例:

  • 用户开启 透明 PNG 图片反色开关
  • 程序识别到透明 png 并且是在暗黑模式下的话自动反色
luo-chuan

luo-chuan commented on Dec 1, 2022

@luo-chuan
Author

@luo-chuan 我还是觉得自动识别比较好,理想中的用例:

  • 用户开启 透明 PNG 图片反色开关
  • 程序识别到透明 png 并且是在暗黑模式下的话自动反色

自动化其实有风险,因为透明png可能并不仅仅包含公式示意图,还可能包含人物抠图卡通表情等,而这部分图片不需要反色,如果一定要自动化,逻辑反而复杂了。

88250

88250 commented on Dec 1, 2022

@88250
Member

@luo-chuan 有道理……这个还是先搁置吧。

luo-chuan

luo-chuan commented on Dec 1, 2022

@luo-chuan
Author

@luo-chuan 有道理……这个还是先搁置吧。

先搁置吧。刚刚在现有软件基础上摸索出来一套解决方案,有一些不完美,但至少够用。先上效果图:

从阿里巴巴素材库网址下载了一张透明png图片,原生效果如图:
image
image

然后将图片的提示文本改为“dark”,如图:
image

再在暗黑主题的theme.css文件的最后添加如下代码并保存:

/* 图片反色 */
img[alt="dark"] {
    filter: invert(100%);
}

最后在暗黑主题下,图片显示效果如下(不影响明亮主题):

image

如果D大能允许图片任意增加属性就好了,这种方案毕竟会占用原有的提示文本属性

88250

88250 commented on Dec 4, 2022

@88250
Member

行级元素的自定义属性暂时是支持不了了,感谢讨论,我关闭了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @88250@luo-chuan@hackerhui

        Issue actions

          关于暗黑主题下图片显示的建议 · Issue #6711 · siyuan-note/siyuan