Просмотр файла LogoGen/image.php

Размер файла: 26.84Kb
<?php
/*
LogoGen by Magistr v1.0.0
Автор: Magistr
Сайт: http://interda.wen.ru
ICQ: 237352
E-mail: wap-help[ряв!]yandex.ru
*/
//==================================================//
	include_once 'config.php';									# Инклюдим настройки
//==================================================//
	// Прием данных, переданных через GET с предыдущей (их) страниц
	
	$text = $_GET['text'];								# текст надписи
	$turn = $_GET['turn'];								# угол поворота
	$size = $_GET['size'];								# размер шрифта
	$v_bgcolor = $_GET['v_bgcolor'];		# формат цвета фона
	
	// если выбран формат цвета фона #rrggbb, то получить только переменную $bgcolor_rrggbb ($bgcolor_r, $bgcolor_g, $bgcolor_b - не получать)
	if ($v_bgcolor == 'rrggbb') {
		$bgcolor_rrggbb = $_GET['bgcolor_rrggbb'];		# цвет фона в формате #rrggbb
	};
	
	// если выбран формат цвета фона r,g,b, то получить только переменные $bgcolor_r, $bgcolor_g, $bgcolor_b ($bgcolor_rrggbb - не получать)
	if ($v_bgcolor == 'rgb') {
		$bgcolor_r = $_GET['bgcolor_r'];				# уровень красного цвета фона в формате r,g,b
		$bgcolor_g = $_GET['bgcolor_g'];				# уровень зеленого цвета фона в формате r,g,b 
		$bgcolor_b = $_GET['bgcolor_b'];				# уровень синего цвета фона в формате r,g,b
	};
	
	$v_txtcolor = $_GET['v_txtcolor'];		# формат цвета текста
	
	// если выбран формат цвета текста #rrggbb, то получить только переменную $txtcolor_rrggbb ($txtcolor_r, $txtcolor_g, $txtcolor_b - не получать)
	if ($v_txtcolor == 'rrggbb') {
		$txtcolor_rrggbb = $_GET['txtcolor_rrggbb'];	# цвет текста в формате #rrggbb
	};
	
	// если выбран формат цвета текста r,g,b, то получить только переменные $txtcolor_r, $txtcolor_g, $txtcolor_b ($txtcolor_rrggbb - не получать)
	if ($v_txtcolor == 'rgb') {
		$txtcolor_r = $_GET['txtcolor_r'];				# уровень красного цвета текста в формате r,g,b
		$txtcolor_g = $_GET['txtcolor_g'];				# уровень зеленого цвета текста в формате r,g,b 
		$txtcolor_b = $_GET['txtcolor_b'];				# уровень синего цвета текста в формате r,g,b
	};
	
	$font = $_GET['font'];								# шрифт
	$format = $_GET['format'];							# формат изображения
	
	// если формат изображения PNG, то получить только переменную $transparency ($quality - не получать)
	if ($format == 'png') {
		$transparency = $_GET['transparency'];			# уровень прозрачности для PNG
	};
	
	// если формат изображения JPEG, то получить только переменную $quality ($transparency - не получать)
	if ($format == 'jpeg') {
		$quality = $_GET['quality'];					# уровень качества для JPEG
	};
//==================================================//
	// Производим преобразование спецсимволов в их HTML эквиваленты и удаление обратных слэшей

	$text = stripslashes(htmlspecialchars ($text));
	$turn = stripslashes (htmlspecialchars ($turn));
	$size = stripslashes (htmlspecialchars ($size));
	$v_bgcolor = stripslashes (htmlspecialchars ($v_bgcolor));
	if ($v_bgcolor == 'rrggbb') {
		$bgcolor_rrggbb = stripslashes (htmlspecialchars ($bgcolor_rrggbb));
	};
	if ($v_bgcolor == 'rgb') {
		$bgcolor_r = stripslashes (htmlspecialchars ($bgcolor_r));
		$bgcolor_g = stripslashes (htmlspecialchars ($bgcolor_g));
		$bgcolor_b = stripslashes (htmlspecialchars ($bgcolor_b));
	};
	$v_txtcolor = stripslashes (htmlspecialchars ($v_txtcolor));
	if ($v_txtcolor == 'rrggbb') {
		$txtcolor_rrggbb = stripslashes (htmlspecialchars ($txtcolor_rrggbb));
	};
	if ($v_txtcolor == 'rgb') {
		$txtcolor_r = stripslashes (htmlspecialchars ($txtcolor_r));
		$txtcolor_g = stripslashes (htmlspecialchars ($txtcolor_g));
		$txtcolor_b = stripslashes (htmlspecialchars ($txtcolor_b));
	};
	$font = stripslashes (htmlspecialchars ($font));
	$format = stripslashes (htmlspecialchars ($format));
	if ($format == 'png') {
		$transparency = stripslashes (htmlspecialchars ($transparency));
	};
	if ($format == 'jpeg') {
		$quality = stripslashes (htmlspecialchars ($quality));
	};
//==================================================//
	// Проверяем, все ли поля заполнены, всё ли выбрано
	
	if ($text == '') {$error[1] = 'Не введен текст надписи!';};
	if ($turn == '') {$error[2] = 'Не выбран угол поворота!';};
	if ($size == '') {$error[3] = 'Не выбран размер шрифта!';};
	if ($v_bgcolor == '') {$error[4] = 'Не выбран формат цвета фона!';};
	if ($v_bgcolor == 'rrggbb') {
		if ($bgcolor_rrggbb == '') {$error[5] = 'Не выбран цвет фона в формате #rrggbb!';};
	};
	if ($v_bgcolor == 'rgb') {
		if ($bgcolor_r == '') {$error[6] = 'Не выбран уровень красного цвета фона в формате r,g,b!';};
		if ($bgcolor_g == '') {$error[7] = 'Не выбран уровень зеленого цвета фона в формате r,g,b!';};
		if ($bgcolor_b == '') {$error[8] = 'Не выбран уровень синего цвета фона в формате r,g,b!';};
	};
	if ($v_txtcolor == '') {$error[9] = 'Не выбран формат цвета текста!';};
	if ($v_txtcolor == 'rrggbb') {
		if ($txtcolor_rrggbb == '') {$error[10] = 'Не выбран цвет текста в формате #rrggbb!';};
	};
	if ($v_txtcolor == 'rgb') {
		if ($txtcolor_r == '') {$error[11] = 'Не выбран уровень красного цвета текста в формате r,g,b!';};
		if ($txtcolor_g == '') {$error[12] = 'Не выбран уровень зеленого цвета текста в формате r,g,b!';};
		if ($txtcolor_b == '') {$error[13] = 'Не выбран уровень синего цвета текста в формате r,g,b!';};
	};
	if ($font == '') {$error[14] = 'Не выбран шрифт!';};
	if ($format == '') {$error[15] = 'Не выбран формат изображения!';};
	if ($format == 'png') {
		if ($transparency == '') {$error[16] = 'Не выбран уровень прозрачности для PNG!';};
	};
	if ($format == 'jpeg') {
		if ($quality == '') {$error[17] = 'Не выбран уровень качества для JPEG!';};
	};
	
	// Если есть ошибки, то выводим их на экран и прекращаем дальнейшие действия
	if ($error) {
		include_once 'head.php';
		echo '<p>';
		echo "\n";
		for ($n == 1; $n <18; $n++) {
			if ($error[$n]) {
				echo $error[$n];
				echo '<br>';
				echo "\n";
			};
		};
		echo '</p>';
		echo "\n";
		echo '<p align="center">';
		echo "\n";
		echo '<a href="index.php">Назад</a><br>';
		echo "\n";
		echo '</p>';
		echo "\n";
		include_once 'footer.php';
		exit;
	};
//==================================================//
	// Проверка данных с помощью регулярных выражений 
	// (в полях ввода проверяем допустимые символы, при выборе строгое соответствие возможным вариантам);
	//проверка максимальной и минимальной длины;
	// проверка действительности существования выбранного шрифта
		
	if (preg_match ('/[^0-9a-zA-Z.]/', $text)) {$error[1] = 'Вы ввели запрещенные символы в поле текста надписи!';};
	if (preg_match ('/[^0-9]/', $turn)) {$error[2] = 'Непраильный угол поворота!';};
	if (preg_match ('/[^0-9]/', $size)) {$error[3] = 'Неправильный размер шрифта!';};
	if (!preg_match ('/^rgb$|^rrggbb$/', $v_bgcolor)) {$error[4] = 'Неправильный формат цвета фона!';};
	if ($v_bgcolor == 'rrggbb') {
		if (strlen($bgcolor_rrggbb) !== 6) {$error[5] = 'Неправильный  цвет фона в формате #rrggbb!';};
		if (preg_match ('/[^0-9a-fA-F]/', $bgcolor_rrggbb)) {$error[5] = 'Неправильный цвет фона в формате #rrggbb!';};
	};
	if ($v_bgcolor == 'rgb') {
		if (strlen ($bgcolor_r) > 3) {$error[6] = 'Неправильный уровень красного цвета фона в формате r,g,b!';};
		if (preg_match ('/[^0-9]/', $bgcolor_r)) {$error[6] = 'Неправильный уровень красного цвета фона в формате r,g,b!';};
		
		if (strlen ($bgcolor_g) > 3) {$error[7] = 'Неправильный уровень зеленого цвета фона в формате r,g,b!';};
		if (preg_match ('/[^0-9]/', $bgcolor_g)) {$error[7] = 'Неправильный уровень зеленого цвета фона в формате r,g,b!';};
		
		if (strlen ($bgcolor_b) > 3) {$error[8] = 'Неправильный уровень синего цвета фона в формате r,g,b!';};
		if (preg_match ('/[^0-9]/', $bgcolor_b)) {$error[8] = 'Неправильный уровень синего цвета фона в формате r,g,b!';};
	};
	if (!preg_match ('/^rgb$|^rrggbb$/', $v_txtcolor)) {$error[9] = 'Неправильный формат цвета текста!';};
	if ($v_txtcolor == 'rrggbb') {
		if (strlen($txtcolor_rrggbb) !== 6) {$error[10] = 'Неправильный  цвет текста в формате #rrggbb!';};
		if (preg_match ('/[^0-9a-fA-F]/', $txtcolor_rrggbb)) {$error[10] = 'Неправильный  цвет текста в формате #rrggbb!';};
	};
	if ($v_txtcolor == 'rgb') {
		if (strlen ($txtcolor_r) > 3) {$error[11] = 'Неправильный уровень красного цвета текста в формате r,g,b!';};
		if (preg_match ('/[^0-9]/', $txtcolor_r)) {$error[11] = 'Неправильный уровень красного цвета текста в формате r,g,b!';};
		
		if (strlen ($txtcolor_g) > 3) {$error[12] = 'Неправильный уровень зеленого цвета текста в формате r,g,b!';};
		if (preg_match ('/[^0-9]/', $txtcolor_g)) {$error[12] = 'Неправильный уровень зеленого цвета текста в формате r,g,b!';};
		
		if (strlen ($txtcolor_b) > 3) {$error[13] = 'Неправильный уровень синего цвета текста в формате r,g,b!';};
		if (preg_match ('/[^0-9]/', $txtcolor_b)) {$error[13] = 'Неправильный уровень синего цвета текста в формате r,g,b!';};
	};
	if (strlen ($font) > 60) {$error[14] = 'Неправильный выбор шрифта!';};
	if (preg_match ('/[^0-9a-zA-Z._-]/', $font)) {$error[14] = 'Неправильный выбор шрифта!';};
	if (!preg_match ('/^gif$|^jpeg$|^png$/', $format)) {$error[15] = 'Неправильный выбор формата изображения!';};
	if ($format == 'png') {
		if (preg_match ('/[^0-9]/', $transparency)) {$error[16] = 'Неправильный уровень прозрачности для PNG!';};
	};
	if ($format == 'jpeg') {
		if (preg_match ('/[^0-9]/', $quality)) {$error[17] = 'Неправильный уровень качества для JPEG!';};
	};
	$dir = opendir ($dir_fonts);
	while ($file = readdir ($dir)) {
		$file = str_replace ('.ttf', '', $file);
		if ($font == $file) {$font_found = true;};
	};
	if (!$font_found) {$error[14] = 'Такого шрифта не существует!';};
	closedir ($dir);
	
	// Если есть ошибки, то выводим их на экран и прекращаем дальнейшие действия
	if ($error) {
		include_once 'head.php';
		echo '<p>';
		echo "\n";
		for ($n == 1; $n <18; $n++) {
			if ($error[$n]) {
				echo $error[$n];
				echo '<br>';
				echo "\n";
			};
		};
		echo '</p>';
		echo "\n";
		echo '<p align="center">';
		echo "\n";
		echo '<a href="index.php">Назад</a><br>';
		echo "\n";
		echo '</p>';
		echo "\n";
		include_once 'footer.php';
		exit;
	};
//==================================================//
	// Обрезаем длинные строки и регулирум минимальные  максимальные значения
	
	$text = substr($text, 0, $text_symbols_max);
	if ($turn >= 360) {$turn = $turn - (360 * floor($turn/360));};
	if ($size < 1) {$size = 1;};
	if ($size > $size_max) {$size = $size_max;};
	if ($transparency > 127) {$transparency = 127;};
	if ($quality > 100) {$quality = 100;};
	if ($bgcolor_r > 255) {$bgcolor_r = 255;};
	if ($bgcolor_g > 255) {$bgcolor_g = 255;};
	if ($bgcolor_b > 255) {$bgcolor_b = 255;};
	if ($txtcolor_r > 255) {$txtcolor_r = 255;};
	if ($txtcolor_g > 255) {$txtcolor_g = 255;};
	if ($txtcolor_b > 255) {$txtcolor_b = 255;};
//==================================================//
	// Преобразуем цвета фона и текста из формата #rrggbb в формат r,g,b
	
	// Преобразуем символы цвета фона и текста в формате #rrggbb с прописных в строчные
	if ($v_bgcolor == 'rrggbb') {$bgcolor_rrggbb = strtolower ($bgcolor_rrggbb);};
	if ($v_txtcolor == 'rrggbb') {$txtcolor_rrggbb = strtolower ($txtcolor_rrggbb);};
	
	// Функция замены
	function color ($str) {
	
		$str = str_replace ('00', '0', $str);
		$str = str_replace ('01', '1', $str);
		$str = str_replace ('02', '2', $str);
		$str = str_replace ('03', '3', $str);
		$str = str_replace ('04', '4', $str);
		$str = str_replace ('05', '5', $str);
		$str = str_replace ('06', '6', $str);
		$str = str_replace ('07', '7', $str);
		$str = str_replace ('08', '8', $str);
		$str = str_replace ('09', '9', $str);
		$str = str_replace ('0a', '10', $str);
		$str = str_replace ('0b', '11', $str);
		$str = str_replace ('0c', '12', $str);
		$str = str_replace ('0d', '13', $str);
		$str = str_replace ('0e', '14', $str);
		$str = str_replace ('0f', '15', $str);
		
		$str = str_replace ('10', '16', $str);
		$str = str_replace ('11', '17', $str);
		$str = str_replace ('12', '18', $str);
		$str = str_replace ('13', '19', $str);
		$str = str_replace ('14', '20', $str);
		$str = str_replace ('15', '21', $str);
		$str = str_replace ('16', '22', $str);
		$str = str_replace ('17', '23', $str);
		$str = str_replace ('18', '24', $str);
		$str = str_replace ('19', '25', $str);
		$str = str_replace ('1a', '26', $str);
		$str = str_replace ('1b', '27', $str);
		$str = str_replace ('1c', '28', $str);
		$str = str_replace ('1d', '29', $str);
		$str = str_replace ('1e', '30', $str);
		$str = str_replace ('1f', '31', $str);

		$str = str_replace ('20', '32', $str);
		$str = str_replace ('21', '33', $str);
		$str = str_replace ('22', '34', $str);
		$str = str_replace ('23', '35', $str);
		$str = str_replace ('24', '36', $str);
		$str = str_replace ('25', '37', $str);
		$str = str_replace ('26', '38', $str);
		$str = str_replace ('27', '39', $str);
		$str = str_replace ('28', '40', $str);
		$str = str_replace ('29', '41', $str);
		$str = str_replace ('2a', '42', $str);
		$str = str_replace ('2b', '43', $str);
		$str = str_replace ('2c', '44', $str);
		$str = str_replace ('2d', '45', $str);
		$str = str_replace ('2e', '46', $str);
		$str = str_replace ('2f', '47', $str);

		$str = str_replace ('30', '48', $str);
		$str = str_replace ('31', '49', $str);
		$str = str_replace ('32', '50', $str);
		$str = str_replace ('33', '51', $str);
		$str = str_replace ('34', '52', $str);
		$str = str_replace ('35', '53', $str);
		$str = str_replace ('36', '54', $str);
		$str = str_replace ('37', '55', $str);
		$str = str_replace ('38', '56', $str);
		$str = str_replace ('39', '57', $str);
		$str = str_replace ('3a', '58', $str);
		$str = str_replace ('3b', '59', $str);
		$str = str_replace ('3c', '60', $str);
		$str = str_replace ('3d', '61', $str);
		$str = str_replace ('3e', '62', $str);
		$str = str_replace ('3f', '63', $str);

		$str = str_replace ('40', '64', $str);
		$str = str_replace ('41', '65', $str);
		$str = str_replace ('42', '66', $str);
		$str = str_replace ('43', '67', $str);
		$str = str_replace ('44', '68', $str);
		$str = str_replace ('45', '69', $str);
		$str = str_replace ('46', '70', $str);
		$str = str_replace ('47', '71', $str);
		$str = str_replace ('48', '72', $str);
		$str = str_replace ('49', '73', $str);
		$str = str_replace ('4a', '74', $str);
		$str = str_replace ('4b', '75', $str);
		$str = str_replace ('4c', '76', $str);
		$str = str_replace ('4d', '77', $str);
		$str = str_replace ('4e', '78', $str);
		$str = str_replace ('4f', '79', $str);

		$str = str_replace ('50', '80', $str);
		$str = str_replace ('51', '81', $str);
		$str = str_replace ('52', '82', $str);
		$str = str_replace ('53', '83', $str);
		$str = str_replace ('54', '84', $str);
		$str = str_replace ('55', '85', $str);
		$str = str_replace ('56', '86', $str);
		$str = str_replace ('57', '87', $str);
		$str = str_replace ('58', '88', $str);
		$str = str_replace ('59', '89', $str);
		$str = str_replace ('5a', '90', $str);
		$str = str_replace ('5b', '91', $str);
		$str = str_replace ('5c', '92', $str);
		$str = str_replace ('5d', '93', $str);
		$str = str_replace ('5e', '94', $str);
		$str = str_replace ('5f', '95', $str);

		$str = str_replace ('60', '96', $str);
		$str = str_replace ('61', '97', $str);
		$str = str_replace ('62', '98', $str);
		$str = str_replace ('63', '99', $str);
		$str = str_replace ('64', '100', $str);
		$str = str_replace ('65', '101', $str);
		$str = str_replace ('66', '102', $str);
		$str = str_replace ('67', '103', $str);
		$str = str_replace ('68', '104', $str);
		$str = str_replace ('69', '105', $str);
		$str = str_replace ('6a', '106', $str);
		$str = str_replace ('6b', '107', $str);
		$str = str_replace ('6c', '108', $str);
		$str = str_replace ('6d', '109', $str);
		$str = str_replace ('6e', '110', $str);
		$str = str_replace ('6f', '111', $str);

		$str = str_replace ('70', '112', $str);
		$str = str_replace ('71', '113', $str);
		$str = str_replace ('72', '114', $str);
		$str = str_replace ('73', '115', $str);
		$str = str_replace ('74', '116', $str);
		$str = str_replace ('75', '117', $str);
		$str = str_replace ('76', '118', $str);
		$str = str_replace ('77', '119', $str);
		$str = str_replace ('78', '120', $str);
		$str = str_replace ('79', '121', $str);
		$str = str_replace ('7a', '122', $str);
		$str = str_replace ('7b', '123', $str);
		$str = str_replace ('7c', '124', $str);
		$str = str_replace ('7d', '125', $str);
		$str = str_replace ('7e', '126', $str);
		$str = str_replace ('7f', '127', $str);

		$str = str_replace ('80', '128', $str);
		$str = str_replace ('81', '129', $str);
		$str = str_replace ('82', '130', $str);
		$str = str_replace ('83', '131', $str);
		$str = str_replace ('84', '132', $str);
		$str = str_replace ('85', '133', $str);
		$str = str_replace ('86', '134', $str);
		$str = str_replace ('87', '135', $str);
		$str = str_replace ('88', '136', $str);
		$str = str_replace ('89', '137', $str);
		$str = str_replace ('8a', '138', $str);
		$str = str_replace ('8b', '139', $str);
		$str = str_replace ('8c', '140', $str);
		$str = str_replace ('8d', '141', $str);
		$str = str_replace ('8e', '142', $str);
		$str = str_replace ('8f', '143', $str);

		$str = str_replace ('90', '144', $str);
		$str = str_replace ('91', '145', $str);
		$str = str_replace ('92', '146', $str);
		$str = str_replace ('93', '147', $str);
		$str = str_replace ('94', '148', $str);
		$str = str_replace ('95', '149', $str);
		$str = str_replace ('96', '150', $str);
		$str = str_replace ('97', '151', $str);
		$str = str_replace ('98', '152', $str);
		$str = str_replace ('99', '153', $str);
		$str = str_replace ('9a', '154', $str);
		$str = str_replace ('9b', '155', $str);
		$str = str_replace ('9c', '156', $str);
		$str = str_replace ('9d', '157', $str);
		$str = str_replace ('9e', '158', $str);
		$str = str_replace ('9f', '159', $str);

		$str = str_replace ('a0', '160', $str);
		$str = str_replace ('a1', '161', $str);
		$str = str_replace ('a2', '162', $str);
		$str = str_replace ('a3', '163', $str);
		$str = str_replace ('a4', '164', $str);
		$str = str_replace ('a5', '165', $str);
		$str = str_replace ('a6', '166', $str);
		$str = str_replace ('a7', '167', $str);
		$str = str_replace ('a8', '168', $str);
		$str = str_replace ('a9', '169', $str);
		$str = str_replace ('aa', '170', $str);
		$str = str_replace ('ab', '171', $str);
		$str = str_replace ('ac', '172', $str);
		$str = str_replace ('ad', '173', $str);
		$str = str_replace ('ae', '174', $str);
		$str = str_replace ('af', '175', $str);

		$str = str_replace ('b0', '176', $str);
		$str = str_replace ('b1', '177', $str);
		$str = str_replace ('b2', '178', $str);
		$str = str_replace ('b3', '179', $str);
		$str = str_replace ('b4', '180', $str);
		$str = str_replace ('b5', '181', $str);
		$str = str_replace ('b6', '182', $str);
		$str = str_replace ('b7', '183', $str);
		$str = str_replace ('b8', '184', $str);
		$str = str_replace ('b9', '185', $str);
		$str = str_replace ('ba', '186', $str);
		$str = str_replace ('bb', '187', $str);
		$str = str_replace ('bc', '188', $str);
		$str = str_replace ('bd', '189', $str);
		$str = str_replace ('be', '190', $str);
		$str = str_replace ('bf', '191', $str);

		$str = str_replace ('c0', '192', $str);
		$str = str_replace ('c1', '193', $str);
		$str = str_replace ('c2', '194', $str);
		$str = str_replace ('c3', '195', $str);
		$str = str_replace ('c4', '196', $str);
		$str = str_replace ('c5', '197', $str);
		$str = str_replace ('c6', '198', $str);
		$str = str_replace ('c7', '199', $str);
		$str = str_replace ('c8', '200', $str);
		$str = str_replace ('c9', '201', $str);
		$str = str_replace ('ca', '202', $str);
		$str = str_replace ('cb', '203', $str);
		$str = str_replace ('cc', '204', $str);
		$str = str_replace ('cd', '205', $str);
		$str = str_replace ('ce', '206', $str);
		$str = str_replace ('cf', '207', $str);

		$str = str_replace ('d0', '208', $str);
		$str = str_replace ('d1', '209', $str);
		$str = str_replace ('d2', '210', $str);
		$str = str_replace ('d3', '211', $str);
		$str = str_replace ('d4', '212', $str);
		$str = str_replace ('d5', '213', $str);
		$str = str_replace ('d6', '214', $str);
		$str = str_replace ('d7', '215', $str);
		$str = str_replace ('d8', '216', $str);
		$str = str_replace ('d9', '217', $str);
		$str = str_replace ('da', '218', $str);
		$str = str_replace ('db', '219', $str);
		$str = str_replace ('dc', '220', $str);
		$str = str_replace ('dd', '221', $str);
		$str = str_replace ('de', '222', $str);
		$str = str_replace ('df', '223', $str);

		$str = str_replace ('e0', '224', $str);
		$str = str_replace ('e1', '225', $str);
		$str = str_replace ('e2', '226', $str);
		$str = str_replace ('e3', '227', $str);
		$str = str_replace ('e4', '228', $str);
		$str = str_replace ('e5', '229', $str);
		$str = str_replace ('e6', '230', $str);
		$str = str_replace ('e7', '231', $str);
		$str = str_replace ('e8', '232', $str);
		$str = str_replace ('e9', '233', $str);
		$str = str_replace ('ea', '234', $str);
		$str = str_replace ('eb', '235', $str);
		$str = str_replace ('ec', '236', $str);
		$str = str_replace ('ed', '237', $str);
		$str = str_replace ('ee', '238', $str);
		$str = str_replace ('ef', '239', $str);

		$str = str_replace ('f0', '240', $str);
		$str = str_replace ('f1', '241', $str);
		$str = str_replace ('f2', '242', $str);
		$str = str_replace ('f3', '243', $str);
		$str = str_replace ('f4', '244', $str);
		$str = str_replace ('f5', '245', $str);
		$str = str_replace ('f6', '246', $str);
		$str = str_replace ('f7', '247', $str);
		$str = str_replace ('f8', '248', $str);
		$str = str_replace ('f9', '249', $str);
		$str = str_replace ('fa', '250', $str);
		$str = str_replace ('fb', '251', $str);
		$str = str_replace ('fc', '252', $str);
		$str = str_replace ('fd', '253', $str);
		$str = str_replace ('fe', '254', $str);
		$str = str_replace ('ff', '255', $str);

		return $str;
	};
	
	// Разделяем строки по два символа
	if ($v_bgcolor == 'rrggbb') {
		$bgcolor_r = substr ($bgcolor_rrggbb, 0, 2);
		$bgcolor_g = substr ($bgcolor_rrggbb, 2, 2);
		$bgcolor_b = substr ($bgcolor_rrggbb, 4, 2);
	};
	if ($v_txtcolor == 'rrggbb') {
		$txtcolor_r = substr ($txtcolor_rrggbb, 0, 2);
		$txtcolor_g = substr ($txtcolor_rrggbb, 2, 2);
		$txtcolor_b = substr ($txtcolor_rrggbb, 4, 2);
	};

	// Заменяем символы на цифры
	if ($v_bgcolor == 'rrggbb') {
		$bgcolor_r = color ($bgcolor_r);
		$bgcolor_g = color ($bgcolor_g);
		$bgcolor_b = color ($bgcolor_b);
	};
	if ($v_txtcolor == 'rrggbb') {
		$txtcolor_r = color ($txtcolor_r);
		$txtcolor_g = color ($txtcolor_g);
		$txtcolor_b = color ($txtcolor_b);
	};
//==================================================//
	// Приступаем к созданию изображения
	
	// Путь к выбранному шрифту
	$font = $dir_fonts."/$font.ttf";	// Не знаю, как здесь вынести переменную $fonts за кавычки. Кто знает просьба сообщить мне.

	// Определение параметров расположения текста 
	$pos = ImageTTFBbox ($size, $turn, $font, $text);

	// Вычисление ширины изображения
	$min_x = min ($pos[0], $pos[2], $pos[4], $pos[6]);
	$max_x = max ($pos[0], $pos[2], $pos[4], $pos[6]);
	$width = $max_x - $min_x + 1;

	//Вычисление высоты изображения
	$min_y = min($pos[1], $pos[3], $pos[5], $pos[7]);
	$max_y = max($pos[1], $pos[3], $pos[5], $pos[7]);
	$height = $max_y - $min_y + 1;

	# Определение размеров
	$im = ImageCreate ($width+1, $height+1);

	# Определение цветов фона
	$bg = ImageColorAllocateAlpha ($im, $bgcolor_r, $bgcolor_g, $bgcolor_b, $transparency);

	# Определение цветов текста
	$textcolor = ImageColorAllocate ($im, $txtcolor_r, $txtcolor_g, $txtcolor_b);

	# Вывод текста на изображение
	ImageTTFtext ($im, $size, $turn, $pos[0] - $min_x, $pos[1] - $min_y, $textcolor, $font, $text);
//==================================================//
	// Формирвание заголовков MIME-типа в соответствие с выбранным форматом иозображения

	// Для GIF
	if ($format == "gif") {
		@HEADER ("Content-type: image/gif");
		ImageGIF ($im);
	}

	//Для JPEG
	if ($format == "jpeg") {
		@HEADER ("Content-type: image/jpeg");
		ImageJPEG ($im, "", $quality);
	}

	//Для PNG
	if ($format == "png") {
		@HEADER ("Content-type: image/png");
		ImagePNG ($im);
	}
//==================================================//
	// Удаляем рисунок
	ImageDestroy($im);
?>