Воден знак с php
Автор: alex95_bg_2
Този скрипт, който написах е различен от уроците тук – той не показва как се слага воден знак на картинка чрез php и GD2 а прави всичко това автоматично
Ето го процеса:
1.Потребител избира jpg картинка
- Скрипта я качва в временна директория
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
Ъплоуд скрипта го взех от един урок тук


