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

    @endraw Автор вопроса
    Дмитрий,

    Спасибо всем кто откликнулся, сделал вот так

    // задание максимальной ширины и высоты
    $n_width = $imgw;
    $n_height = $imgh;

    // получение новых размеров
    list($width_orig, $height_orig) = getimagesize($nb_img_root . $row2['image']);
    $ratio_orig = $width_orig/$height_orig;
    if ($n_width/$n_height > $ratio_orig) {
    $n_width = $n_height*$ratio_orig;
    } else {
    $n_height = $n_width/$ratio_orig;
    }

    $marginh = ($imgh - $n_height) / 2;

    $image_p = imagecreatetruecolor($imgw, $imgh);
    imagefill($image_p, 0, 0, 0xFFFFFF);
    $image = imagecreatefromjpeg($nb_img_root . $row2['image']);
    imagecopyresampled($image_p, $image, 0, $marginh, 0, 0, $n_width, $n_height, $width_orig, $height_orig);
  • Изменить размер отдаваемого изображения на PHP?

    @endraw Автор вопроса
    вроде сделал при помощи imagecopyresampled

    но как теперь сделать, что размер холста бы у всех одинаковый

    $image_p = imagecreatetruecolor($n_width, $n_height);
    $image = imagecreatefromjpeg($nb_img_root . $row2['image']);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $n_width, $n_height, $width_orig, $height_orig);

    изменяет размер в пропорциях и получается что изображение не 180х180 а 180х105

    как растянуть холст без растягивания изображения

    пробовал Imagick, но он не работает, хотя в настройках php всё включил и даже перезагрузил сервак
  • Изменить размер отдаваемого изображения на PHP?

    @endraw Автор вопроса
    картинку с наложенным текстом, но в оригинальном размере, а нужно изменить размер отдаваемого изображения
  • Изменить размер отдаваемого изображения на PHP?

    @endraw Автор вопроса
    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);