Внимание!
Не все расширения для phpBB 3.2 совместимы с phpBB 3.3, главным образом из-за неверного синтаксиса в определениях сервисов (отсутствия обрамляющих кавычек - '...').
Перед обновлением необходимо убедиться в совместимости всех расширений.
Рекомендуется предварительно тестировать обновление на копии конференции (локально или на сервере).

Помогите с наложением текста на картинку

Форум для авторов модов для phpBB 2.0.x.
Deny
phpBB 1.0.0
Сообщения: 2
Зарегистрирован: 30.01.2009 15:48

Помогите с наложением текста на картинку

Сообщение Deny »

Здравствуйте! стоит задача прикрутить к Smartor Photo Album v2 http://www.phpbbguru.net/mods/?id=132#132
наложение некоторого текста в углу каждой загружаемой фотографии. нашел какой-то код

Код: Выделить всё

<?php

// Пользовательские функции
function resizeJPG ($img, $w=800, $h=600) //150х150 - новый формат изображения
{
$imagedata=getimagesize($img);



if ($w && ($imagedata[0] < $imagedata[1]) )
      $w=($h/$imagedata[1])*$imagedata[0];
     else
      $h=($w/$imagedata[0])*$imagedata[1];

$im2=ImageCreateTrueColor($w,$h);

$image=ImageCreateFromJpeg($img);
$x=ImageSX($image);
$y=ImageSY($image);

if ($w<$x or $h<$y)
{
imagecopyResampled ($im2, $image, 0, 0, 0, 0, $w, $h, $imagedata[0], $imagedata[1]);
return $im2;
}
else
return ImageCreateFromJpeg($img);
}



//конец пользовательских функций






$str="© LOGOTIP"; //этот текст необходимо будет вывести на изображении
$font="arial.ttf"; //шрифт для написания текста
$fontsize=12; //размер шрифта

/*
  Цвет шрифта задается ниже в теле программы в RGB (задано 234,234,234)
*/

$type=$_GET['type']; //получаем тип изображения
$name=$_GET['name']; //получаем имя файла без разширения

if (($type>0 && $type<7)  && strlen($name)>0)
{
switch ($type)
{
case 1: $image=resizeJPG("{$name}.jpg"); break;
case 2: $image=ImageCreateFromGif("{$name}.gif"); break;
case 3: $image=ImageCreateFromPng("{$name}.png"); break;
case 4: $image=resizeJPG("{$name}.JPG"); break;
case 5: $image=ImageCreateFromGif("{$name}.GIF"); break;
case 6: $image=ImageCreateFromPng("{$name}.PNG"); break;

}

$x=ImageSX($image);
$y=ImageSY($image);

if ($x>100 && $y>100)
$check=true;
else
$check=false;

$x=$x-110;
$y=$y-1-min(10,$y*0.03);

$color=imagecolorallocate($image,234,234,234); //здесь необходимо задать текст шрифта в RGB (234,234,234)
$str=iconv('CP1251', 'UTF-8', $str); //изменяет кодировку надписи для работы с TTF

if ($check==true) imagettftext($image, $fontsize, 0, $x, $y, $color, $font, $str);




//определяем заголовок страницы и отправляем изображение
switch ($type)
{
case 1: header("Content-type: image/jpeg"); ImageJpeg($image); break;
case 2: header("Content-type: image/gif"); ImageGif($image); break;
case 3: header("Content-type: image/png"); ImagePng($image); break;
case 4: header("Content-type: image/jpeg"); ImageJpeg($image); break;
case 5: header("Content-type: image/gif"); ImageGif($image); break;
case 6: header("Content-type: image/png"); ImagePng($image); break;

}

ImageDestroy($image); //освобождает память
}
?>
но ничего не понял :oops:
помогите пожалуйста!

Deny
phpBB 1.0.0
Сообщения: 2
Зарегистрирован: 30.01.2009 15:48

Re: Помогите с наложением текста на картинку

Сообщение Deny »

Спасибо за помощь. сам разобрался.
надо найти в файле album_upload.php стороку "// Well, it's an image. Check its image size" и добавить выше нее код

Код: Выделить всё

$imagename = ALBUM_UPLOAD_PATH . $pic_filename;
 
switch ($pic_filetype)
	{
	case '.jpg':
	 $im = imagecreatefromjpeg ($imagename);
        break;
	case '.png':
	 $im = imagecreatefrompng ($imagename);
        break;
        case '.gif':
	 $im = imagecreatefromgif ($imagename);
        break;	
        default:
         message_die(GENERAL_ERROR, $lang['Not_allowed_file_type']);
        }
 
$y=ImageSY($im);
$y=$y-5;
$color = imagecolorallocate ($im, 255, 255, 255);
imagettftext($im, 9, 0, 6, $y-1, $color, "abq_mod/fonts/tubular.ttf", "COPY.US");
imagettftext($im, 9, 0, 4, $y-1, $color, "abq_mod/fonts/tubular.ttf", "COPY.US");
imagettftext($im, 9, 0, 6, $y+1, $color, "abq_mod/fonts/tubular.ttf", "COPY.US");
imagettftext($im, 9, 0, 4, $y+1, $color, "abq_mod/fonts/tubular.ttf", "COPY.US");
$color = imagecolorallocate ($im, 0, 0, 0);
imagettftext($im, 9, 0, 5, $y, $color, "abq_mod/fonts/tubular.ttf", "COPY.US");
 
switch ($pic_filetype)
	{
	case '.jpg':
	 Imagejpeg($im, $imagename);
        break;
	case '.png':
	 Imagepng($im, $imagename);
        break;
        case '.gif':
	 Imagegif($im, $imagename);
        break;	
        default:
         message_die(GENERAL_ERROR, $lang['Not_allowed_file_type']);
        }
ImageDestroy($im);
где abq_mod/fonts/tubular.ttf - шрифт, COPY.US - надпись на рисунке

Вернуться в «Для авторов (phpBB 2.0.x)»