html5-canvas - 在选择了深色模式的设备上渲染地图
问题描述
我正在使用 HTML 画布 drawImage 将 OSM 地图图块渲染到网页上。但是,如果最终用户选择了暗模式,我想降低这些显示地图的亮度,但仍然让它们对用户有意义。
到目前为止,我取得了一定的成功,如下:
- 首先使用 drawImage 绘制地图图块
- 将 globalCompositeOperation 设置为“差异”
- 使用相同大小的白色矩形过度绘制地图图块
- 将 globalCompositeOperation 设置回“source-over”
但这种简单的颜色反转也许不是最好的解决方案。有没有人有任何其他的建议。
解决方案
我找到了一个很好的解决方案,如下所示:
- 首先将画布上下文过滤器设置为“hue-rotate(180deg)”
- 然后使用 drawImage 在画布上绘制地图图块
- 然后将画布上下文过滤器设置为“无”
- 将画布上下文 globalCompositeOperation 设置为“差异”
- 然后用相同大小的白色矩形绘制地图图块
- 最后将画布上下文 globalCompositeOperation 设置回“source-over”
推荐阅读
- python - How to use 'view.kwargs' correctly
- google-cloud-platform - GCP ZONE_RESOURCE_POOL_EXHAUSTED
- idris - How would a Void let you produce, or do, anything?
- javascript - 在 Javascript 中将 CSS 链接到 HTML 字符串
- javascript - Finding and Inserting Item
- c# - How does one use C# in SCSS Conditionals?
- arrays - Exclude elements of a list that are in another array
- bluetooth-lowenergy - BLE Missing Packets (Protocol / Spec question)
- ios - 如何确定 MTLTextureDescriptor 的最大允许大小
- angular - 可观察属性中的“$”是什么意思?