0qln447 downloadsTurn your inline images into darkmode (...and more!).
Obsidian Plugin.
Apply filters, such as darkmode effects (with transparency), to your markdown image links.
This is what it might look like:
No filter:
With @darkmode filter:
Add the plugin
Just add the filters to the alias part of your image link:
Normal embed:
`![[image.png|image-description]]`
Embed with darkmode:
`![[image.png|image-description @darkmode]]`
Where darkmode is essentially just a shorthand for this:
`![[image.png|image-description @invert @transparent(threshold="rgb((13, 13, 13))", remove="below") @boost-lightness(amount=1.2)]]`
The filter are applied in order left to right.
will look like this for most cases:
@filter-name(boolean-param, int-param=42, float-param=-6.9, string-param="text-value")
For string values, the following characters have to be written in a special way:
" => ""( => (() => ))Backslashes are not allowed. (Due to how the image-alt is parsed by obsidian.)
All kind's of link notation are supported:
![[image.png | image-description @darkmode]]

<img src="https://raw.githubusercontent.com/0qln/obsidian-image-darkmodifier/HEAD/image.png" alt="image-description @darkmode" style="height: 410px">
You can even use image links to remote images:

(Note that this requires a network request to fetch the image data.)
Reccomended for use on images with white backgrounds (e.g. screenshots of diagrams in papers).
name: @darkmode
params: none.
By default, always applies dark mode adjustments: inverts the image, removes the background, and boosts the lightness by 1.2.
Essentially just a shorthand for: @invert @transparent(threshold="rgb((13, 13, 13))", remove="below") @boost-lightness(amount=1.2).
You can enable Theme Aware Mode in the plugin settings. When enabled, the @darkmode filter automatically adapts to Obsidian's current theme:
In Dark Theme:
In Light Theme:
Images will automatically re-render when you switch between light and dark themes.
Inverts the image.
name: @invert
params: none.
Converts the image pixel representation to hsl, and boosts the lightness.
name: @boost-lightness
params:
amount:Make pixels below or above a certain threshold transparent.
name: @transparent
params:
remove:"above" or "below""above": removes pixels above the threshold"below": removes pixels below the thresholdthreshold: all pixels that have r, g and b channels above or below this threshold will be made transparent."rgb((69, 42, 3))" or "hsl((35deg, 91.7%, 14.1%))" would have the same effect:
Feel free to open pullrequests or issues. Adding new filters is really straight forward, you can use existing filters for reference.
I don't use Obsidian Mobile myself, so if you want mobile support, feel free to open a PR.
Known issues: