【发布时间】:2017-09-03 05:50:26
【问题描述】:
我过去做过这个,我知道它存在,但由于某种原因我现在找不到它(浪费了几个小时没有成功)。
我想通过CSS 模拟Photoshop RGB 关卡。
在下图中,我将中间值从 1 更改为 0.5。
我想用 CSS 获得相同的效果(或至少尽可能接近)。
我已尝试使用以下代码:https://jsfiddle.net/txwu3so5/
我需要找到一些替换代码来获得这种效果。实际代码会影响白色(我不希望这样)。
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
.img_02 {
filter: url(#level-50);
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="position:absolute;height:0;">
<defs>
<filter id="level-50" x="0" y="0">
<!-- begin of code to replace -->
<feColorMatrix type="matrix" values="
0.5 0 0 0 0
0 0.5 0 0 0
0 0 0.5 0 0
0 0 0 1 0"
/>
<!-- end of code to replace -->
</filter>
</defs>
</svg>
<img class="img_01" src="https://image.ibb.co/kzz41Q/image.png" />
<br /><br />
<img class="img_02" src="https://image.ibb.co/kzz41Q/image.png" />
</body>
</html>
在Photoshop 中,我通常从 1 更改为不同的值,例如:0.75、0.5 等。我想用CSS 以某种方式模仿这一点。我记得我用了一个和上面很相似的代码,唯一需要改变的是替换代码。
[编辑 1]
这是另一个问题的一部分。必须使用SVG filter 标签。
【问题讨论】:
-
hue-rotate(90deg)是filter属性的有效 CSS 值。您不需要 SVG。 -
反正我不需要色相旋转。我需要的是亮度级别更改(不完全一样,但类似),但修改不能影响白色和黑色,就像 Photoshop 级别一样。
-
啊,我明白了。你可能需要计算一个颜色矩阵......天哪,这不会很有趣 XD
-
我认为过去我使用了一种比颜色矩阵更简单的解决方案,但这也适用于我。
标签: html css svg photoshop svg-filters