Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Водные знаки
 
 автор: Рома   (10.04.2009 в 10:42)   письмо автору
 
 

Можно ли с помощью графической библиотеки, автоматически писать на каждом фото из галереи водный знак. То что текстом можно, это я знаю, но хотелось бы, чтоб шрифт не "укрывал" изображение, а прорисовал как бы контуры букв. Или нужно каждую картинку в фотошоп загонять и там уже рисовать водный знак?

  Ответить  
 
 автор: sim5   (10.04.2009 в 11:00)   письмо автору
 
   для: Рома   (10.04.2009 в 10:42)
 

Зачем "загонять". Приготовьте в фотошопе изображние логотипа вам нужного, с прозрачностью и т.п., и сохранив его на сервер в PNG формате, накладывайте затем его на изображения.

  Ответить  
 
 автор: Slo_Nik   (10.04.2009 в 11:36)   письмо автору
 
   для: sim5   (10.04.2009 в 11:00)
 

а как правильно это сделать, посоветуйте какие темы форума почитать об этом?

  Ответить  
 
 автор: sim5   (10.04.2009 в 12:34)   письмо автору
 
   для: Slo_Nik   (10.04.2009 в 11:36)
 

Тут есть пример с картинками. Все делается просто.

  Ответить  
 
 автор: Slo_Nik   (10.04.2009 в 13:11)   письмо автору
 
   для: sim5   (10.04.2009 в 12:34)
 

спасибо.
скачал Ваш пример, попробовал, но работает только вот так
<?php
$im 
imagecreatefromjpeg("eye.jpg"); 
$lg imagecreatefrompng("logo.png"); 
imagecopy($im$lg60400013556); 
//header('Content-Type: image/jpeg');
$patch "grafic/img3.jpg";  
imagejpeg($im,$patch);  
imagedestroy($im); 
imagedestroy($lg); 
?>
<img src='grafic/img3.jpg' />

если header расскомментировать, то просто пустая страница с прямоугольником "рисунок"

  Ответить  
 
 автор: sim5   (10.04.2009 в 13:32)   письмо автору
 
   для: Slo_Nik   (10.04.2009 в 13:11)
 

Еще бы. Вот это что такое $patch = "grafic/img3.jpg"; ?
Если вы хотите на лету накладвать логотипы, то атрибут src тега img должне обращаться к этому скрипту наложения логотипа, а не так, как вы пытаетесь это сделать. Если однократно, при загрузке изображения, то вызывайте этот скрипт именно при загрузке.

  Ответить  
 
 автор: Slo_Nik   (10.04.2009 в 14:12)   письмо автору
 
   для: sim5   (10.04.2009 в 13:32)
 

может я не правильно понимаю, но создал файл, назвал его как то, в файле разместил Ваш пример. При переходе к этому файлу выдаётся только прямоугольник "рисунок".
как мне заставить работать скрипт?

  Ответить  
 
 автор: sim5   (10.04.2009 в 14:39)   письмо автору
 
   для: Slo_Nik   (10.04.2009 в 14:12)
 

Выполните пример отдельно. 100% гарантии, что он будет работать (картинки для примера там приложены).
Теперь еще раз. Если вы хотите накладывать логотип на лету, то тег изображения должен выглядеть, например, так:
<img src="script_php_name.php?im=var" />

где script_php_name.php это рhр-файл, который будет заниматься наложением логотипа (пусть по тому примеру, который я вам привел), а im, это параметр по значению которого "var", вы будете определять изображение, на которое нужно наложить логотип.
Но то, что вы пытаетесь делать с примером, говорит о том, что вам постоянно нужно наложить логотипы на изображения. Тогда оформите этот пример как функцию, передавая аргументом в нее изображение, на которое нужно наложить логотип, и после его наложения, записывайте результат на диск. Это лучше всего делать при загрузке файлов на сервер. А вывод осуществлять обычным HTML-кодом.
Если вам требуется наложить логотип на уже существующие файлы в каком либо каталоге, то обатитесь к этой же функции, с помощью простого временного скрипта, кторый переберет в цикле все файлы ее, и сделает необходимое.

  Ответить  
 
 автор: Slo_Nik   (10.04.2009 в 15:23)   письмо автору
 
   для: sim5   (10.04.2009 в 14:39)
 

создал файл image.php, скопировал туда Ваш пример, вызвал этот файл, ни чего не получилось, опять прямоугольник "рисунок".картинки и сам файл в одной папке лежат, на одном уровне.
вот тут не совсем понял.
<img src="script_php_name.php?im=var" />

с именем файла вроде понятно, в данном случае это image.php, а вот с im, написать так
im = "img.jpg"
?
и ещё вопрос по размерам этих изображений.
допустим есть фотогалерея, куда загружаются фотографии, естественно разного размера, но не более 600*400 px.
как в этом случае определить положение логотипа, например, в нижнем правам углу?
p.s. пример заработал, это я погорячился, убрал все html теги и заработал.

  Ответить  
 
 автор: sim5   (10.04.2009 в 15:48)   письмо автору
 
   для: Slo_Nik   (10.04.2009 в 15:23)
 

Ну во-первых так im = "img.jpg" никак не может быть записано ни в теге IMG, а уже тем более в РНР коде.
Во-вторых, в GD существуют функции imagesx и imagesy, которые позволят вам получить размеры изображения и высчитать место положения накладваемого логотипа.

  Ответить  
 
 автор: Slo_Nik   (10.04.2009 в 15:53)   письмо автору
 
   для: sim5   (10.04.2009 в 15:48)
 

с функциями попробую разобраться сам.
а как правильно тогда записать?

  Ответить  
 
 автор: sim5   (10.04.2009 в 16:35)   письмо автору
 
   для: Slo_Nik   (10.04.2009 в 15:53)
 

<img src="script_php_name.php?im=img.jpg" />

  Ответить  
 
 автор: Slo_Nik   (10.04.2009 в 16:46)   письмо автору
 
   для: sim5   (10.04.2009 в 16:35)
 

действительно, и чего это я ...?
спасибо за консультацию

  Ответить  
 
 автор: Рома   (10.04.2009 в 16:27)   письмо автору
 
   для: sim5   (10.04.2009 в 15:48)
 

Я так понимаю нужно создать функцию, которая перед выводом на экран на любое фото наложит логотип и выведет в браузер, а исходные картинки останут не испорченные логотипом.
Мне нравиться, спасибо.

  Ответить  
 
 автор: GeorgeIV   (10.04.2009 в 11:09)   письмо автору
 
   для: Рома   (10.04.2009 в 10:42)
 

Только правильно они называются "водяные"

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования