将 CSS 滤镜亮度转换为 PHP IMG_FILTER_BRIGHTNESS

convert CSS filter brightness to PHP IMG_FILTER_BRIGHTNESS

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

所以我可以获得 CSS 将亮度降低 10%、20%、将亮度加倍至 200% 等。效果很好。

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

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

假设范围像这样相关:

     | 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.