Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128

Галерея и watermark

02.08.2012, 10:45. Показов 1188. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите не могу разобраться.
Мне необходимо в показать изображение в галереи с водяным знаком. Не могу разобраться и понять как сделать вызов функции на с определенным именем изображения?
Вот что у меня есть:
Вот вызов картинки в галереи:
PHP
1
2
<a href="../img/<?=$row['photo']?>" class="gallery" rel="group">
<img src="preview.php"></a>
$row['photo'] - это название изображения

Вот вызов watermark
PHP
1
$img = image_watermark((isset($_GET['image']))?$_GET['image']:"");
PHP
1
2
<a href="<?=$img?>" class="gallery" rel="group">
<img src="preview.php"></a>
И сама функция
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function image_watermark ($img) {
if (!empty($img)) {
$image = $img;
 
$size_format = getimagesize($image);
$format = strtolower(substr($size_formay['mime'], strpos($size_format['mime'], '/')+1));
 
header('content-type: image/'.$format.'');
 
// получаем имя изображения через GET
$image = $_GET['image']; 
 
// создаём водяной знак
$watermark = imagecreatefrompng('watermark.png');    
 
// получаем значения высоты и ширины водяного знака
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);  
 
// создаём jpg из оригинального изображения
$image_path = $image;
$image = imagecreatefromjpeg($image_path);
//если что-то пойдёт не так
if ($image === false) {
    return false;
}
$size = getimagesize($image_path);
// помещаем водяной знак на изображение
$dest_x = (($size[0])/2) - (($watermark_width)/2);
$dest_y = (($size[1])/2) - (($watermark_height)/2);
 
imagealphablending($image, true);
imagealphablending($watermark, true);
// создаём новое изображение
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
 
$imageformat = 'image'.$format;
$imageformat($image);
 
// освобождаем память
imagedestroy($image);
imagedestroy($watermark);  
}
}
В общем 2 + 2 сложить не получается(((
Заранее спасибо всем за ответы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2012, 10:45
Ответы с готовыми решениями:

WaterMark php
&lt;?php $img_url = '../upload/image.jpg'; $i = imageCreateFromJPEG($img_url); //Делаем белый фон $color =...

watermark на php
Хочу накладывать марку на изображения, при загрузке, делаю так: // Загрузка штампа и фото, для которого применяется водяной знак...

Создание Watermark и полосы
Собственно есть jpg картинки, на которые нужно нанести watermark в формате png (Grayscale 16 бит на канал). На денвере все хорошо, а на...

12
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.08.2012, 11:00
так вы не возвращаете измененную картинку из функции

Добавлено через 51 секунду
вы ее просто там же уничтожаете - а новая так и остается в функции (сама т.е. уничтожается)
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
02.08.2012, 11:23  [ТС]
А это разве не вывод?
PHP
1
$imageformat($image);
Добавлено через 5 минут
Я не пойму как при обращении к функции
PHP
1
$img = image_watermark((isset($_GET['image']))?$_GET['image']:"");
задать сразу имя или id изображения, которое я вызывала
PHP
1
2
<a href="../img/<?=$row['photo']?>" class="gallery" rel="group">
<img src="preview.php"></a>
Пожалуйста подскажите.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.08.2012, 11:40
вывод и возврат из функции - это разные вещи
Цитата Сообщение от wredyatina Посмотреть сообщение
PHP
1
2
3
if ($image === false) {
* * return false;
}
вот здесь вы как раз возвращаете false

Добавлено через 1 минуту
так передавайте в функцию тогда не $_GET['image'] а $row['photo']
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
02.08.2012, 12:25  [ТС]
все спс) я и сама только что додумалась....))) видимо встала не стой ноги и мозг не включился сразу)))) Сейчас попробую.

Добавлено через 43 минуты
Нет все таки я не поняла по поводу возврата изображения из функции.

Сделала, но у меня переходит в ../img/
PHP
1
2
 $nameimage = $row['photo'];
      $img = image_watermark($nameimage);
PHP
1
<a href="../img/<?=$img?>" target="_blank" rel="lightbox[roadtrip]"?>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<? function image_watermark ($nameimage) {
        global $img; global $nameimage;
if (!empty($nameimage)) {
$image = $nameimage;
 
$size_format = getimagesize($image);
$format = strtolower(substr($size_formay['mime'], strpos($size_format['mime'], '/')+1));
 
header('content-type: image/'.$format.'');
 
// получаем имя изображения через GET
$image = $_GET['image'];
 
// создаём водяной знак
$watermark = imagecreatefrompng('watermark.png');    
 
// получаем значения высоты и ширины водяного знака
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);  
 
// создаём jpg из оригинального изображения
$image_path = $image;
$image = imagecreatefromjpeg($image_path);
//если что-то пойдёт не так
if ($image === false) {
    return false;
}
$size = getimagesize($image_path);
// помещаем водяной знак на изображение
$dest_x = (($size[0])/2) - (($watermark_width)/2);
$dest_y = (($size[1])/2) - (($watermark_height)/2);
 
imagealphablending($image, true);
imagealphablending($watermark, true);
// создаём новое изображение
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
 
$imageformat = 'image'.$format;
$imageformat($image);
 
// освобождаем память
imagedestroy($image);
imagedestroy($watermark);  
}
}
 
?>
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.08.2012, 12:27
Цитата Сообщение от wredyatina Посмотреть сообщение
Сделала, но у меня переходит в ../img/
так вы это и написали
Цитата Сообщение от wredyatina Посмотреть сообщение
<a href="../img/<?=$img?>
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
02.08.2012, 12:30  [ТС]
Да, но хотелось бы чтобы изображения выводились в popup окне галереи (не в новом) с водяным знаком.

Добавлено через 23 секунды
Вот и не могу разобраться как сделать(
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.08.2012, 12:37
так причем тут всплывающие окна, пых и путь директорией выше?

Добавлено через 1 минуту
модальные окна - это js/jquery
картинка - это пых (в вашем случае)
путь директорией выше к картинке (т.е. несуществующий) - несуществующая картинка
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
02.08.2012, 12:46  [ТС]
спс за ответы, и что возитесь.
модальные окна - это js/jquery
картинка - это пых (в вашем случае)
путь директорией выше к картинке (т.е. несуществующий) - несуществующая картинка
Да я понимаю, но я же писала наверху.

1. Нр.: делаю я вывод изображения в галереи, которая находиться в директории ../img/
HTML5
1
<a href="/img/имя.jpeg"  target="_blank" rel="lightbox[roadtrip]"><img src="имяпревью.jpg"/></a>
У меня отображается все хорошо как надо.

2. Но теперь задача, добавить на уже имеющиеся изображения из директории ../img/ добавить водяной знак.
Соответственно подобрала функцию, которая замечательно работает, но использую я ее так:
HTML5
1
<a href="/img/watermark.php?image=имя.jpeg" ><img src="имяпревью.jpg"/></a>
Водяной знак добавляется и изображение выводиться в новом окне.

А мне так сильно надо чтобы изображение выводилось с водяным заком (с использованием функции 2) в галереи (1). Вот и не могу разобраться как их совместить...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.08.2012, 13:06
Цитата Сообщение от wredyatina Посмотреть сообщение
target="_blank"
вот это отвечает за вывод в новом окне. либо уберите его, либо измените на target="_self" или _parent, или _top, тут все равно
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
02.08.2012, 15:20  [ТС]
да спс только не открывается изображение, а ошибка 404, так как функция у меня так и неполучила изображение.
Ладно спс) Пересортирую все изображения, массово создам копии с watermark'ом и буду их выводить.
Просто хотелось сделать при выводе, не получается(((

Добавлено через 50 минут
Пыталась, пыталась сделать через php.... вчера ушло пару часов, и сегодня пол дня и не получилось(. Сделала через htaccess за 5 минут.............

Добавлено через 1 час 13 минут
KOPOJI, спасибо огромное за внимание и ответы.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.08.2012, 15:41
да не за что в принципе.. (и ведь не вру же)
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
02.08.2012, 15:43  [ТС]
))))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2012, 15:43
Помогаю со студенческими работами здесь

Создание нового правила в watermark.php
Сейчас водяной знак добавляется ко всем изображениям из папки photo. htaccess отправляет в файл watermark.php ...

Галерея
Скрипт не отправляет изображения. В чём ошибка? &lt;? $ImgDir=&quot;/GALERY/img&quot;; // Каталог для хранения изображений ...

Галерея
кто нибудь писал свою галерею для сайта?скиньте примеры))

Галерея php
Подскажите, пожалуйста, как добавить описание под каждой фотографией?

Галерея картинок
Помогите, пожалуйста! Уже раза три переписывал, не хочет выводить в ul картинки &lt;div id=&quot;images&quot;&gt; &lt;?php ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru