Помогни ни да направим Uroci.net по - богат! Добави урок

Как се слага воден знак

PHP » PHP
SoundreameR   трудност:    видян: 14174

Този път ще Ви покажа, как можете бързо и лесно да сложите воден знак на картинките във вашата PHP галерия. Методиката е проста, начини има разни и разнообразни, но днес ще ви покажа как можете да сложите воден знак на файл, без да променяте оригинала!

1. Създайте си файл със някакво име, например "img.php".

2. Да предположим, че имате MySQL база данни с id-та на снимките и съответно имената на файловете.

3. Ето примерен код:

//тук си сложете MySQL глупости, които да сложат името на файла в $img
//водния знак ни е във файл "mark.png" от тип !!!PNG!!! и е в променлива $cop
header("Content-type: image/jpg"); //подменяме HEADER-ите за да знае браузъра, че това, което ще дойде от този файл е картинка, а не text/html. Това е MIME Type (питайте Google, за повече инфо)
$image = ImageCreateFromJPEG($img); //създаваме променлива, която носи съдържанието на картинката ни
$mark = ImageCreateFromPNG($cop); // създаваме променлива, която носи съдържанието на водния знак
$image_dim_x = ImagesX($image); //измерваме ширината на картинката
$image_dim_y = ImagesY($image); //измерваме височината на картинката
$mark_dim_x = ImagesX($copyright); //измерваме ширината на водния знак
$mark_dim_y = ImagesY($copyright); //измерваме височината на водния знак
$where_x = ($image_dim_x - $copyright_dim_x) / 2; //ще сложим водния знак по средата
$where_y = $image_dim_y - $copyright_dim_y; //на височина ще е точно на дъното на картинката
ImageCopy ($image, $mark, $where_x, $where_y, 0, 0, $mark_dim_x, $mark_dim_y); //сливаме картинката и водния знак
ImageJPEG($image); //извежда се новото съдържание на картинката
ImageDestroy($image); //изчистване на буфера
ImageDestroy($copyright); //и пак...

4. И така... вече подменете src на картинките с img.php?id=123 примерно...

5. Ето още една малка идейка... можете да направите така, че при всяко зареждане на картинка, тя да има различен воден знак, избран произволно от няколко възможни! Яко нали?

Просто си създайте няколко водни знака, имената на които да се различават само по една цифра накрая, и когато залагате $cop направете нещо подобно:

$cop = "mark".rand(1,5).".jpg"; //избираме между mark1.png, mark2.png, mark3.png, mark4.png и mark5.png

6. Донагласете си нещата, че да проработи и внимавайте с правата над файловете, за да може img.php да работи с тях!

Дано съм бил полезен с този урок!
Пример на същия код в действие можете да видите в сайта ми - www.teen4e.com



Коментари (3)

SoundreameR на 05.01 2007 в 00:56ч.
Когато съм копирал от моя скрипт кода съм забравил да подменя имената на 3 променливи, на 3 места ще видите нещо свързано с $copyright*, подменете copyright с mark :)
SoundreameR на 10.01 2007 в 23:15ч.
При пренасянето на оригиналния код съм забравил да преименувам няколко променливи.. навсякъде, където има copyright, го заменете с mark :)
antipatrul на 17.12 2009 в 10:23ч.
хах браво

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com