@endraw

Изменить размер отдаваемого изображения на PHP?

Накладываю watermark на изображение хранящееся на сервере и отдаю получившееся изображение в файле img.php

//вывод изображения в браузер
header('Content-Type: image/jpeg');
imageJPEG($nb_wt_image);

ни как не могу изменить размер выводимого изображения (imageJPEG($nb_wt_image); - это не файл на сервере)

как изменить размер imageJPEG($nb_wt_image); например на 180х180

и отдать в браузер через imageJPEG($nb_wt_image);

всё перепробовал, не получается(((( ( если файл сохранён на сервере например 1.jpg, то функции изменения работают, но мне нужно без сохранения. т.е. беру файл с сервера, накладываю watermark, изменяю размер(без сохранения) и отдаю через PHP)

Вот полный код

function nb_add_watermark($nb_img, $text, $font, $r = 128, $g = 128, $b = 128, $alpha = 110) {

//получаем ширину и высоту исходного изображения
$width = imagesx($nb_img);
$height = imagesy($nb_img);
//угол поворота текста
//$angle = -rad2deg(atan2((-$height),($width)));
$angle = 0;

//добавляем пробелы к строке
$text = " ".$text." ";

$c = imagecolorallocatealpha($nb_img, $r, $g, $b, $alpha);
//$size = (($width+$height)/2)*2/strlen($text);
$size = (($width+$height)/2)*2/45;
$box = imagettfbbox ( $size, $angle, $font, $text );
//$x = $width/2 - abs($box[4] - $box[0])/2;
//$y = $height/2 + abs($box[5] - $box[1])/2;
$x = -50;
$y = -5;

//записываем строку на изображение
imagettftext($nb_img, $size, $angle, $x, $y, $c, $font, $text);

return $nb_img;

}

$nb_img_root = '/var/www/site/data/www/site.ru/image/';
$nb_img2 = imagecreatefromjpeg($nb_img_root . $row2['image']);

//текст для наложения
$wt_text = ' TEST ' . $row['name'] . ' TEST' . "\n";
$wt_text .= $row['name'] . ' TEST ' . $row['name'] . "\n";

$nb_wt_image = nb_add_watermark($nb_img2, $wt_text, '/var/www/site/data/www/site.ru/ad/img-test/mbi900.ttf');

header('Content-Type: image/jpeg');

imageJPEG($nb_wt_image);

//освобождаем память
imagedestroy($nb_wt_image);
imagedestroy($nb_img2);
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы