Добрый день, уважаемые спецы! У меня стоит задача сделать скрипт, который бы менял цвет png изображения. Ну чтобы было более нагляднее , приведу пример того что нужно http://trickysticky.ru/vynil-stickers/i ... /house_md/ вот, пробывал уже кое как на php но возникла проблема, что он как -то странно изменяет цвет да и используется header и как известно перед ним никаого выводна не должно быть... в обще даже не знаю как решать задачу ( может что-то посоветуете или кто-то уже делал подобное? Буду признателен! PHP: $img=imagecreatefrompng('dj.png'); $index = imagecolorat($img, 150, 100); imagecolorset($img, $index, 255, 0, 0); header("Content-type: " .image_type_to_mime_type(IMAGETYPE_PNG)); imagepng($img);
прошу прощение, ссылка примера немного кривовата, вот правильная http://trickysticky.ru/vynil-stickers/i ... /house_md/
Вариант номер адын. сделай все вариации (цвет фона Х цвет рисунка) и на js тыкай нужный рисунок. Применимо если рисунок будет неизменяемым и таких вариаций не много (ну до сотни). Плюсы - обрабатывается шуро-быро, пхп - не просит. Минусы - нужно нарисовать кучу этих вариаций и держать в папке с рисунками. Вариант намбер два. нужно ипенить скрипт, в котором обрабатываешь входящие переменные, такие как цвет фона и цвет центрального рисунка, рисуешь на gd2 выталкиваешь через хедер, чтото типа как ты написал. Но код нужно держать в отдельном файле и сделать реврайт через mod_rewrite, чтобы путь к рисунку был типа таким: site.com/img-12-6.png, где 12 - это, например, цвет фона, а 6- цвет рисунка. В реврайте это переписывается на image.php?bg=12&img=6. В сам хтмл код, после обработки через js - тыкаешь такой рисунок - <img src="/img-12-6.png">. Поскольку в реврайте есть правило, то при запросе картинки будет дергаться страница image.php с указанными параметрами.
Есть еще вариант - нарисовать ваши виниловые картинки в svg (или портировать в svg из корела), и js заказывать изменение цвета заливки. шуро-быро, php не просит, нагрузки на сервер - ноль, выбор цветов - хоть скроллбаром или по rgb-кубу (посмотрите в сторону готовых js решений). upd: прошу прощения, не заметил, что именно png. почитайте тогда вот это. вам должно подойти: http://stackoverflow.com/questions/1890 ... gd-library но я всё равно думаю, что js - более выгодное решение.
titch, да рад бы я и на JS но на нём у меня деже понятия нет как сделать. если сожешь - направь хоть в нужное русло
svg - это такая форма представления xml-изображения. В нужном месте можно обратиться к параметрам цвета и т.д. Есть хорошие примеры, как в динамике при помощи svg+js делают карты распространения погодных фронтов и всякую такую полезнячину. Принцип такой: загружаем svg пользователю, когда пользователь хочет что-то поменять (двигает скролл), по событию вызываем функцию, которая парсит xml, меняет код цвета в svg и просит браузер перерисовать его.
вот код он меняет цвет картинки на красный.. но тут картинка gif PHP: $im = imagecreatefromgif("dj.gif"); $index = imagecolorat($im, 150, 100); imagecolorset($im, $index, 255, 0, 0); imagepng($im); вот скрин работы ... но мне нужно чтобы менялся в png картинки и я переделал на вот так: PHP: $im = imagecreatefrompng("dj.png"); $index = imagecolorat($im, 150, 100); imagesavealpha($im, true); //для сохранения альфаканала imagecolorset($im, $index, 255, 0, 0); imagepng($im); как итог - не работает, не заменяет цвет на красный и показывает исходное изображение .( подправьте ребят, что не так.. не пойму вот скрин