воскресенье, 13 ноября 2011 г.

Водяные знаки в php

Вы можете интегрировать эти функции в свой проект и при загрузке изображений оставлять копирайты на фотках.


Наложение текста - watermark_text()
Функция, с помощью которой производится наложение текста на изображение.

$font_path = "GILSANUB.TTF"; // файл шрифта
$font_size = 30; // размер в пиуселях
$water_mark_text_2 = "karpovi4 (с) 2011"; // сам текст
function watermark_text($oldimage_name, $new_image_name){
global $font_path, $font_size, $water_mark_text_2;
list($owidth,$oheight) = getimagesize($oldimage_name);
$width = $height = 300;
$image = imagecreatetruecolor($width, $height);
$image_src = imagecreatefromjpeg($oldimage_name);
imagecopyresampled($image, $image_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
$blue = imagecolorallocate($image, 79, 166, 185);
imagettftext($image, $font_size, 0, 68, 190, $blue, $font_path, $water_mark_text_2);
imagejpeg($image, $new_image_name, 100);
imagedestroy($image);
unlink($oldimage_name);
return true;
}

Наложение изображение - watermark_image()
Функция для наложения изображений.

$image_path = "qudev.png";
function watermark_image($oldimage_name, $new_image_name){
global $image_path;
list($owidth,$oheight) = getimagesize($oldimage_name);
$width = $height = 300;
$im = imagecreatetruecolor($width, $height);
$img_src = imagecreatefromjpeg($oldimage_name);
imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
$watermark = imagecreatefrompng($image_path);
list($w_width, $w_height) = getimagesize($image_path);
$pos_x = $width - $w_width;
$pos_y = $height - $w_height;
imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height);
imagejpeg($im, $new_image_name, 100);
imagedestroy($im);
unlink($oldimage_name);
return true;
}

Форма
ПХП код с ХТМЛ формой. Ничего сложного. Просто отправляем запрос.

<?php
$demo_image= "";
if(isset($_POST['createmark']) and $_POST['createmark'] == "Submit"){
$path = "uploads/";
$valid_formats = array("jpg", "bmp","jpeg");
$name = $_FILES['imgfile']['name'];
if(strlen($name)){
list($txt, $ext) = explode(".", $name);
if(in_array($ext,$valid_formats) && $_FILES['imgfile']['size'] <= 256*1024){
$upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']);
if($upload_status){
$new_name = $path.time().".jpg";
// Here you have to user functins watermark_text or watermark_image
if(watermark_text($path.$_FILES['imgfile']['name'], $new_name))
$demo_image = $new_name;
}
}
else
$msg="Неверный формат изображения или оно больше 256 кб";
}
}
?>
// HTML
<form name="imageUpload" method="post" enctype="multipart/form-data" >
Загрузка изображения
Картинка :<input type="file" name="imgfile" /><br />
<input type="submit" name="createmark" value="Submit" />
<?php
if(!empty($demo_image))
echo '<img src="'.$demo_image.'" />';
?>
</form>

Удачки, люди!

Комментариев нет:

Отправить комментарий