服务器端的 CSS 亮度/对比度



寻找答案 2 周。我有一个工具,可以直接在Web浏览器中调整图像的对比度和亮度,并使用CSS3属性来显示结果。但是我也应该将这些修改应用于服务器端的原始JPG,并将其输出回用户。

我该怎么做?我正在使用PHP + Imagemagick,但找不到进行此转换的方法。请帮助我。

我发现了ImageMagick的一个很棒的功能,它允许我们在亮度和对比度方面做任何事情。它是"-级"。

但它不允许直接应用 CSS3 亮度和对比度值。因此,我进行了很好的调查并计算了特殊公式,以将CSS亮度和对比度值转移到"-level"选项的"黑点"和"白点"参数。请查看此页面(对不起,俄语,但您可以使用谷歌翻译)。如果您不想阅读所有这些方程式,请滚动到页面底部。

CSS3 brightness 滤镜只是将颜色值乘以给定的常量。1][2] 要使用 Imagemagick 实现相同的效果,请使用 -evaluate Multiply [3]。或者,-function Polynomial [4] 可用于相同的效果。其他特征,如-level[5][6]和-brightness-contrast[7][8]不太合适,因为它们将颜色乘以给定常数的倒数

CSS 属性filter: brightness(80%)对应于 Imagemagick 选项-evaluate Multiply .8

CSS 属性filter: brightness(120%)对应于 Imagemagick 选项-evaluate Multiply 1.2

在PHP中设置Imagemagick的选项(或从PHP迁移到更好的东西)对读者来说是一个练习。

您需要传输客户端亮度设置,然后将其应用于原始 JPG

bool Imagick::modulateImage ( float $brightness , float $saturation , float $hue )

功能。更多这个

相关内容

  • 没有找到相关文章