Изменение размера изображений внутри слайдов с помощью PHPPowerPoint

Я использую PHPPowerPoint lib для создания некоторых файлов PowerPoint. Проблема в том, что изображения, которые приходят с сервера, слишком велики и нарушают границы слайда. Вот код, который я использую для изображений:

if(file_exists($dir.$image)){
    // Add logo
    $shape = $slide->createDrawingShape();
    $shape->setName('PHPPowerPoint logo');
    $shape->setDescription('PHPPowerPoint logo');
    $shape->setPath($dir.$image);
    $shape->setWidth(310);
    $shape->setHeight(608);
    $shape->setOffsetX(330);  
    $shape->setOffsetY(70); 
    //$shape->setOffsetY(720 - 10 - 40);
    }

Обратите внимание, что я уже устанавливаю ширину и высоту, но изображение не соответствует этим конфигурациям. Могу ли я что-нибудь сделать, чтобы изображения соответствовали нужному мне размеру или стали отзывчивыми?

Редактировать: это код для функции createTemplateSlide:

function createTemplatedSlide(PHPPowerPoint $objPHPPowerPoint, $dir, $image, $razao, $nome, $data, $contador)
{
    // Create slide
    $slide = $objPHPPowerPoint->createSlide();

    if(file_exists($dir.$image)){
    // echo("$contador) o arquivo: '".$dir.$image."' existe <br>");
    // Add logo
    $shape = $slide->createDrawingShape();
    $shape->setName('PHPPowerPoint logo');
    $shape->setDescription('PHPPowerPoint logo');
    $shape->setPath($dir.$image);
    $shape->setWidth(310);
    $shape->setHeight(608);
    $shape->setOffsetX(330);  
    $shape->setOffsetY(70); 
    //$shape->setOffsetY(720 - 10 - 40);
    }

    // Create a shape (text)
    // echo date('H:i:s') . " Create a shape (rich text)<br>";
    $shape = $slide->createRichTextShape();
    $shape->setHeight(60);
    $shape->setWidth(960);
    $shape->setOffsetX(0);
    $shape->setOffsetY(20);
    $shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER );

    $textRun = $shape->createTextRun($razao."  ".$data);
    $textRun->getFont()->setBold(true);
    $textRun->getFont()->setSize(16);
    $textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( '00000000' ) );

    for ($i=0; $i <23 ; $i++) { 
        $shape->createBreak();
    }

    $textRun = $shape->createTextRun(utf8_encode($nome));
    $textRun->getFont()->setBold(true);
    $textRun->getFont()->setSize(16);
    $textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( '00000000' ) );


    // Return slide
    return $slide;
}

1 ответ

Следуя предложению @MadeInDreams, я нашел эту тему:

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

Я использовал решение там и функцию imagejpeg, чтобы скопировать новое сгенерированное изображение в какую-то папку моего проекта.

Другие вопросы по тегам