将CSS过滤器亮度转换为PHP IMG_FILTER_BRIGHTNESS

时间:2017-05-25 11:52:43

标签: php css filter gd

我的页面上有一张图片,下方有 HTML 范围滑块。当我移动滑块时,一些 jQuery 会更改图像的 CSS 滤镜亮度。

所以我可以举例说明 CSS 将亮度降低10%,20%,亮度加倍到200%等。这样可以。

我希望** PHP **(GD)使用IMG_FILTER_BRIGHTNESS应用亮度变化。问题是IMG_FILTER_BRIGHTNESS不使用百分比,它使用0表示100%,255表示纯白色,-255表示纯黑色。

有谁知道如何将滑块上选择的值转换为 PHP 所需的相应值?

1 个答案:

答案 0 :(得分:1)

假设范围如此相关:

     | black | no change | white
-----|-------+-----------+-------
 CSS |     0 |         1 |     2
-----+-------+-----------+-------
 PHP |  -255 |         0 |   255

您可以在PHP中进行简单的计算:

$brightness = (255 - (255 * $css)) * -1;

结果:

  • 如果$css == 1(100%),则$brightness == 0
  • 如果$css == 0(0%),则$brightness == -255
  • 如果$css == .5(50%),则$brightness == -127.5
  • 如果$css == 1.2(120%),则$brightness == 51