Файл: profiwm.pp.ua/copy.php
Строк: 24
<?php
$img = htmlentities(base64_decode(str_rot13($_GET['img']))); // изображение
$i = htmlentities(base64_decode(str_rot13($_GET['i']))); // поворот
if ($img == '')
{
header('Location: index.php?isset=403');
die();
}
if (!preg_match('/^[0-9-]+$/si', $i))
{
header('Location: index.php?isset=403');
die();
}
$txt = strtoupper($_SERVER['HTTP_HOST']); // текст наложения
$size_img = @getimagesize($img); // параметры картинки
if ($size_img[2] == 2) $src_img = imagecreatefromjpeg($img);
elseif ($size_img[2] == 1) $src_img = imagecreatefromgif($img);
elseif ($size_img[2] == 3) $src_img = imagecreatefrompng($img);
if (!$src_img) exit();
$color = imagecolorallocatealpha($src_img, 255, 225, 255, 0); // Назначаем цвет текста
$col = imagecolorallocate($src_img, 125, 174, 240); // этим цветом заливаем
$font_file = 'ico/comic.ttf'; // шрифт
$img_x = imagesx($src_img);
$img_y = imagesy($src_img);
$height_font = $img_x/30; // размер шрифта
$angle = 0; // угол поворота
#imagettftext($src_img, $height_font, $angle, 2, $img_y-2, $color, $font_file, $txt);
$src_img = imagerotate($src_img, $i, $col); // поворот изображения
/*и вот только теперь мы можем узнать размеры нужной нам подложки
создаем ее по новым размерам исходного изображения (после поворота)*/
$ims = imagecreatetruecolor($img_x, $img_y);
/*устанавливаем цвет кисти для подложки (ранее определенный уже)
и указываем его как прозрачный*/
imagecolortransparent($ims, $col);
imagefill($ims, 0, 0, $col); // заливаем подложку прозрачным цветом
imagecopymerge($ims, $src_img, 0, 0, 0, 0, $img_x, $img_y, 100); // объеденяем изображение с подложкой
// выводим результат
if ($size_img[2] == 2)
{
header('Content-type: image/jpeg');
imagejpeg($src_img);
}
elseif ($size_img[2] == 1)
{
header('Content-type: image/gif');
imagegif($src_img);
}
elseif ($size_img[2] == 3)
{
header('Content-type: image/png');
imagepng($src_img);
}
// освобождаем память
imagedestroy($src_img);
imagedestroy($ims);
?>