Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Графика > Реализация режимов наложения изображений. |
Автор: serezhka1986 6.2.2012, 10:31 |
Добрый день! Подскажите, пожалуйста, реально ли реализовать режими наложения изображений как в Фотошопе? Например, Затемнение, Мягкий свет, Жесткий свет, Перекрытие, Исключение и т.д. Может есть какие-то готовые скрипты по данной теме? Или статьи? Поделитесь. ![]() |
Автор: krundetz 6.2.2012, 12:21 |
serezhka1986, в данной ветке форума как-то поднимался вопрос по алгоритму создания тени под шрифтом, можете поискать. Собственно ваш вопрос упирается в алгоритмы. Средством же может служить обычный GD2. |
Автор: $дмитрий 6.2.2012, 15:28 |
Посмотри http://www.imagemagick.org/image/examples.jpg, там куча встроенных эффектов |
Автор: serezhka1986 6.2.2012, 17:36 |
Раньше никогда не работал с изображениями в php. По-этому вопрос может и нулячий, но подскажите решение, поскольку по мануалу пхп ничего не могу понять. Если есть цвет в RGB, допустим (109, 0, 0). Мне его нужно задать определенному пикселю изображения. Для этого, я так понял, используем int imagesetpixel (resource image, int x, int y, int col) где image - изображение x - координаты по ширине y - координаты по высоте col - цвет Но цвет надо указывать не RGB? Как тогда его перевести в нужный? |
Автор: cutwater 6.2.2012, 18:22 |
http://php.net/manual/en/function.imagesetpixel.php Документацию читать нынче уже не модно? |
Автор: serezhka1986 6.2.2012, 18:47 | ||
Модно, но знание английского хромает. А если у меня всего-навсего пустое изображение размером 500*400 созданное с помощью imagecreate и 3 значения цвета
А мне нужно задать, например, цвет пикселю с координатами x=100 и y=250 Как быть? ![]() |
Автор: cutwater 6.2.2012, 23:20 |
serezhka1986, открыть ссылку еще раз. Посмотреть первый пример. Получить ответ на свой вопрос. Понять что без знания английского делать нечего в программировании. Попробовать себя в другой нужной профессии. |
Автор: serezhka1986 7.2.2012, 10:31 |
Да.... Остроумно... Вместо того чтобы помочь, подсказать что-нибудь - надо поумничать. ![]() |
Автор: krundetz 7.2.2012, 12:48 | ||
|
Автор: serezhka1986 7.2.2012, 13:52 | ||
Спасибо огромное за помощь! ![]() Вот нашел http://www.gamedev.net/blog/862/entry-2249668-pixel-blend-mode-algorithms-including-overlay/. Реализовал наложение двох слоев (фотка и слой с красной заливкой) по данному алгоритму. Примерно так:
Но качество изображений отличается от фотошоповского: Photoshop ![]() Script ![]() Есть ли какое-нибудь решение данной проблемы? |
Автор: krundetz 7.2.2012, 15:01 |
посмотри в сторону ImageMagick, хотя здесь скорее всего применяется ещё один алгоритм повышения четкости изображения, либо более сложный механизм преобразования |
Автор: serezhka1986 8.2.2012, 17:36 |
Вот нашел алгоритмы почти всех режимов наложения в фотошопе: http://www.vanderlee.com/tut_fm_mixingmodes.html Есть у кого пример реализации полупрозрачности? Мне надо на фотку наложить красный цвет одним из режимов наложения, но красный должен быть полупрозрачным (Непрозрачность: 50%) |
Автор: krundetz 9.2.2012, 09:06 |
serezhka1986, вроде как можно наложить одно изображение на другое, одно может быть полупрозрачным также если не получиться встроенными средствами, то попробуй получить смещение которое получается при наложение искомой полу прозрачности, и смещай все цвета в этом направление, на заданную величину |
Автор: serezhka1986 13.2.2012, 12:08 |
Есть ли какой-нибудь вариант реализации размытия по Гауссу с радиусом 10 пикселей. Вот оригинал изображения: ![]() Вот размытие по Гауссу радиусом 10 пикселей в Фотошоп: ![]() Если использовать библиотеку GD, в часности функцию imagefilter() с параметром IMG_FILTER_GAUSSIAN_BLUR (размытие по Гауссу), то получается вот такое: ![]() Пробовал применять несколько раз, но добится желаемого результата не получается. Изображение хоть и немного размывается, но становится темным. Никто не встречал чего-нибудь подобного? Возможно такое можно еще как-нибудь реализовать, например, с помощью матриц скручивания? |
Автор: Task 27.2.2012, 08:26 |
В GD существует функция imageconvolution (в мануалах указание, что она не документирована, но она работает, в любом случае можете проверить на своей версии GD), которая в качестве параметра принимает массив значений матрицы фильтра. Правда матрица только 3х3, но вполне позволяет применить фильтр к изображению, которого нет среди предустановленных в GD. |
Автор: Genn 8.8.2012, 20:46 |
может это фильтры, а не наложение, правильно сформулировать ? |