Создание нескольких изображений с помощью цикла imagejpeg - PullRequest
0 голосов
/ 23 мая 2018

Я строю цикл ниже, чтобы генерировать несколько изображений, используя существующее изображение, и собирать текст из поля формы, введенного пользователем.Одна из переменных - это массив, созданный путем анализа файла csv с именами.

Проблема, с которой я сталкиваюсь, состоит в том, что код выводит только первое изображение, но не любые другие.Массив имеет 9 значений, но это число может меняться в зависимости от CSV пользователя.

<?php
$school = $_POST["school"];
$educator1 = $_POST["educator1"];
$educator2 = $_POST["educator2"];     
$students = $_FILES["csv"]["tmp_name"];
$csvAsArray = array_map("str_getcsv", file($students));

foreach ($csvAsArray as $value) {

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

    // Create Image From Existing File
    $jpg_image = imagecreatefromjpeg('certificate.jpg');

    // Allocate A Color For The Text
    $black = imagecolorallocate($jpg_image, 0, 0, 0);
    $grey = imagecolorallocate($jpg_image, 63, 63, 63);

    // Set Path to Font File
    $font_path = 'GothamRounded-Bold.otf';

    // Print Text On Image
    imagettftext($jpg_image, 90, 0, 90, 920, $black, $font_path, $value[0]);
    imagettftext($jpg_image, 50, 0, 850, 1120, $black, $font_path, $school);
    imagettftext($jpg_image, 50, 0, 90, 1480, $grey, $font_path, $educator1);
    imagettftext($jpg_image, 50, 0, 1050, 1475, $grey, $font_path, $educator2);

    // Send Image to Browser
    // $name = $value[0] .'.jpg';
    imagejpeg($jpg_image);   

    // Clear Memory
    imagedestroy($jpg_image);
}

Вместо того, чтобы нажимать прямо в браузер, я попытался сохранить файл изображения с помощью переменной $ name, чтобы создать следующее, но это тоже не сработало.

$name = $value[0] .'.jpg';    
imagejpeg($jpg_image, $name);

1 Ответ

0 голосов
/ 23 мая 2018

Вы не можете вернуть несколько изображений одновременно.Вот варианты, которые я могу вам предложить:

  1. Упакуйте их все в zip или что-то еще и затем верните как один файл
  2. Склейте их и верните как одно изображение
  3. Сохраните их на сервере в общедоступном каталоге и предоставьте прямые ссылки в ответ конечному пользователю
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...