Воден знак с php
Този скрипт, който написах е различен от уроците тук - той не показва как се слага воден знак на картинка чрез php и GD2 а прави всичко това автоматично
Ето го процеса:
1.Потребител избира jpg картинка
2. Скрипта я качва в временна директория
3.Слага и воден знак
4.Записва я в друга директория
5.Изтрива оригиналната снимка от временната директория и дава линк към картинката

Ето го и кода:
index.html (формата):
<form enctype="multipart/form-data" action="file.php" method="POST">
Моля изберете jpeg картинка: <input name="uploaded" type="file" /><br />
<input type="submit" value="Upload" />
</form>


и втория файл, който обработва:
file.php

<?php

$target = "tmp/"; //Директорията за качване
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;


//Това е ограничението ни за размер
if ($_FILES['uploaded']['size'] > 3500000) //3.33786011 мегабайта
{
echo "Вашия файл е твърде голям.<br>";
$ok=0;
exit;
}
//Това е ограничението за вид на файла //
$ext = array('jpg','jpeg');
$extnafaila = end(explode('.',$_FILES['uploaded']['name']));
$extnafaila = strtolower($extnafaila);
if(!in_array($extnafaila,$ext)){
echo "Можете да качвате само файлове jpg и jpeg";
$ok=0;
exit;
}

//Проверка дали файл със същото име вече не съществува в директорията

$fn = basename( $_FILES['uploaded']['name']);

$name_arr = explode('.',$fn); //

$failime = "./img/$name_arr[0].png";


if (file_exists($failime)) {
echo "Файлът $filename съществува<br>";
$ok=0;
exit;
} else {
echo "Файлът $filename не съществува на сървъра.... Продължаваме<br>";
}
//Тук проверяваме дали по-горе извършените проверки са дали грешки
if ($ok==0)
{
Echo "Не стана";
}

//Ако всичко е наред качваме файла на хоста
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "Файла ".basename( $_FILES['uploaded']['name']). " беше качен...<br /> Почваме водния знак... <br />";

}
else
{
echo "Не стана 2"; //тук показва грешка ако файла не е качен правилно
exit;
}
}

//$fn = basename( $_FILES['uploaded']['name']); след редакция - зададени са по-нагоре

//$name_arr = explode('.',$fn); //махаме разширението jpg на оригиналния файл, изх. картинка е png - след редакция е зададено при проверката за съществуване

$kade = "./img/$name_arr[0].png";

$Watermark = imagecreatefrompng("watermark.png"); //тук си задаваде файла които е водния знак, png

$putq = "tmp/".basename( $_FILES['uploaded']['name']). "";

$Image = imagecreatefromjpeg("$putq");


imagecolortransparent($Watermark,imagecolorat($Watermark,0,0));


$PosX = imagesx($Image)-imagesx($Watermark)-5;
$PosY = imagesy($Image)-imagesy($Watermark)-5;
imagecopymerge($Image,$Watermark,$PosX,$PosY,0,0,imagesx($Watermark),imagesy($Watermark),25);


imagepng($Image, $kade);

if (unlink("tmp/$fn")) {
echo "Временния файл е изтрит... Даваме линк към готовата картинка <br />";
} else {
echo "Не се изтри временния файл <br />";
}

echo "<a href='$kade'>Виж картинката</a>";

?>

При скрипта трябва да имате две директории - img и tmp който трябва да са с CHMOD 777

Това е Smile
Ъплоуд скрипта го взех от един урок тук
За демото се ползва тази картинка
Ето и ДЕМО








/ Трябва да сте регистриран за да напишете коментар /
От: Jakeup
19:08 07-04-2010
ДЕмото не работи, картинката не работи...хайде като правите уроци ДЕМОТАТА ги качвайте на стабилни хостове !
От: darkmas
0:39 09-03-2011
:Д бтв някои ша ми каи ли как да си напраа така че картинката да излиза с оригиналния цвят а не така бледа ?
1