【问题标题】:CSS brightness/contrast at the server side服务器端的 CSS 亮度/对比度
【发布时间】:2019-03-31 17:08:13
【问题描述】:

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

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

【问题讨论】:

  • 服务器操作和浏览器操作的图像永远不会相同,这对我来说会失去用处。
  • @Dagon 你完全不对,请阅读我的回答。我希望它可以帮助您改变看法。

标签: php css image graphics imagemagick


【解决方案1】:

我发现了 ImageMagick 的一个很棒的功能,它允许我们做任何与亮度和对比度有关的事情。它是“级别”。

但它不允许直接应用 CSS3 亮度和对比度值。因此,我做了一个很大的调查并计算了特殊的公式来将 CSS 亮度和对比度值传递给“-level”选项的“黑点”和“白点”参数。请查看this page(抱歉,俄语,但您可以使用谷歌翻译)。如果您不想阅读所有这些方程式,请滚动到页面底部。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      功能。更多this

      【讨论】:

        猜你喜欢
        • 2013-03-23
        • 2012-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-27
        • 2020-05-25
        • 1970-01-01
        相关资源
        最近更新 更多