我可以使用PHP GD Library过滤图像客户端,而不是服务器端吗?

时间:2011-02-05 00:21:34

标签: php javascript css image-manipulation client-side

我使用Soundcloud作为我的曲目。

我正在使用他们的jquery播放器在我的新网站上放置一个小部件,如右上图所示:

I'm using their jquery player to place a widget on my new site, as you can see on the top right:

问题是,Souncloud提供的波形只是一种颜色: Soundcloud waveform only in one colour

我的目标:将此波形PNG从当前颜色更改为黑色,但是客户端。

我知道我可以使用PHP GD库改变一些东西,并且我已经使用以下代码在我的服务器上成功完成了测试图像: http://php.net/manual/en/function.imagefilter.php (搜索“IMG_FILTER_BRIGHTNESS”)

<?php
$im = imagecreatefrompng('hello.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, -255))
{
echo 'Image brightness changed.';

imagepng($im, 'hello.png');
imagedestroy($im);
}
else
{
echo 'Image brightness change failed.';
}
?>

完美无缺!但 它改变了我服务器上的实际图像!非常酷,但不可能......

显然我无法改变Soundcloud服务器上的图像(所有数据,图像,音乐来自API)

所以我正在寻找的是一种可以随时改变PNG客户端颜色的方法。我有很多曲目,所以基本上每次用户点击下一个或上一个曲线时,波形会在它之前和之前加载,它需要改变该图像的颜色: - ?

这可能吗?

在我的测试网站上查看播放器 (顺便说一句,那个样式很旧,但它的功能是正确的) http://marckremers.com/2011/ 注意,整个网站的效果超出了您的目的。还是WIP。

非常感谢

1 个答案:

答案 0 :(得分:2)

这必须在客户端使用Javascript完成,无论是完全JS解决方案还是使用AJAX将其发送到PHP,然后接收最终图像。

你可以试试Pixastic JS库: http://www.pixastic.com/lib/docs/#intro

如果这不起作用,我会使用jQuery读取图像,使用JSRS / AJAX将其发送到PHP脚本,然后在页面上替换它。