Могу ли я отфильтровать клиентскую часть изображения, а не серверную, используя библиотеку PHP GD? - PullRequest
2 голосов
/ 05 февраля 2011

Я использую 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-сигнал с текущего цвета на черный, но на стороне клиента.

Я знаю, что могу что-то изменить, используя библиотеку GD PHPs, и я успешно сделал это с помощью тестового изображения на моем сервере, используя этот код: 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 Ответ

2 голосов
/ 05 февраля 2011

Это должно быть сделано на стороне клиента, используя Javascript, либо полностью JS-решение, либо решение, которое использует AJAX для отправки его в PHP, а затем получает окончательное изображение.

Вы можете попробовать библиотеку Pixastic JS: http://www.pixastic.com/lib/docs/#intro

Если это не сработает, я бы использовал jQuery, чтобы прочитать изображение, отправить его в скрипт PHP с использованием JSRS / AJAX, а затем заменить его на странице.

...