<?PHP
//Подключение шрифта
require __DIR__ . "/font/font.php";
session_start();
//Фильтрация от xss
function clear_data($val){
$val = trim($val);
$val = stripslashes($val);
$val = strip_tags($val);
$val = htmlspecialchars($val, ENT_QUOTES, 'UTF-8');
return $val;
}
//функция вывод ошибок
function error($valerror) {
echo "<div class='error'>".$valerror."</div>";
}
// Разрешение расширения файлов для загрузки
$filetypes = array('jpg', 'gif', 'jpeg', 'png');
// Максимально допустимый размер
$axsize = 1242880;
// Оригинальное название файла
$filename = $_FILES['uploaded_file']['name'];
// Полный путь до временного файла
$tempname = $_FILES['uploaded_file']['tmp_name'];
// Полный путь к новому файлу в папке сервера
$upload = $_SERVER['DOCUMENT_ROOT'] . '/saves/';
$newname = time() . '.gif';
isset($_POST['size']) ? $size = (int)clear_data($_POST['size']) : $size = 8;
isset($_POST['y']) ? $y = (int)clear_data($_POST['y']) : $y = 11;
isset($_POST['x']) ? $x = (int)clear_data($_POST['x']) : $x = 4;
if (isset($_POST['add'])) {
$error = 0;
$name = clear_data($_POST['name']);
if(empty($name)){error('Введите текст'); $error = 1;}
elseif(empty($size)){error('Введите размер шрифта'); $error = 1;}
elseif(empty($y)){error('Введите отступ сверху'); $error = 1;}
elseif(empty($y)){error('Введите отступ слева'); $error = 1;}
$FileExtension = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($FileExtension, $filetypes)) {
error("Файлы с расширением {$FileExtension} не допускаются");
$error = 1;}
elseif(filesize($tempname) > $axsize) {
error('Размер загружаемого файла превышает 1МБ');
$error = 1;}
if ($error == 0){
move_uploaded_file($tempname, $upload . $newname);
$img = $upload . $newname; // Ссылка на файл
$degree = 0; // Угол поворота текста в градусах
$pic = imagecreatefromgif($img); // Функция создания изображения
$color = imagecolorallocate($pic, 255, 255, 255); // Функция выделения цвета для текста
imagettftext($pic, $size, $degree, $x, $y, $color, $font, $name); // Функция нанесения текста
imagegif($pic, $upload . $newname); // Сохранение рисунка
imagedestroy($pic); // Освобождение памяти и закрытие рисунка
$_SESSION['info'] = "<div class = 'forn'><a href = '/saves/".$newname."' target='_blank'>
Скачать ==> <img src='/saves/".$newname."' alt=''></a></div>";
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- Кодировка -->
<meta charset="UTF-8" />
<!-- Мета тег - настройка масштаба -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Нанесение текста на картинку - PHP</title>
<!-- Подключение стилей css-->
<link rel="stylesheet" type="text/css" href="/../styles/style.css">
</head>
<body>
<div class="telo">
<?PHP
if(isset($_SESSION['info'])){
$info = $_SESSION['info'];
echo $info ;
unset($_SESSION['info']);
}
?>
<div class="forn">
<form method="post" action="" enctype="multipart/form-data">
Выберите изображение:
<input name="uploaded_file" type="file"/>
<div class='alle'>Введите текст</div>
<input type="text" name="name" value="<?PHP echo $name; ?>" placeholder="Введите текст" class="urlall">
<div class='alle'>Введите размер шрифта</div>
<input type="text" name="size" value="<?PHP echo $size; ?>" class="urlall">
<div class='alle'>Введите отступ сверху</div>
<input type="text" name="y" value="<?PHP echo $y; ?>" class="urlall">
<div class='alle'>Введите отступ слева</div>
<input type="text" name="x" value="<?PHP echo $x; ?>" class="urlall">
<br>
<input type="submit" name="add" value="Сохранить" class="psit">
</form>
</div></div>
</body>
</html>