Добавить текст в изображение и скачать PHP-GD

0

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

<?php


  function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
  }

  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-image');
  header('Content-type: image/jpeg');

  $jpg_image = imagecreatefromjpeg('voucher.jpg');
  $white = imagecolorallocate($jpg_image, 20, 16, 6);
  $font_path = 'font.TTF';
  $text = "Voucher No: ".generateRandomString(10);
  imagettftext($jpg_image, 15, 0, 85, 680, $white, $font_path, $text);
  imagejpeg($jpg_image);

   header("Content-disposition: attachment; filename=".$jpg_image."");  
   readfile($jpg_image);

  imagedestroy($jpg_image);





?>
  • 0
    эта строка imagejpeg($jpg_image кажется неполным
  • 0
    Только ошибка копирования,
Показать ещё 1 комментарий
Теги:
php-gd

1 ответ

0
Лучший ответ

Я решил это, Маленькая настройка на код.

 function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
  }

  $vnum=generateRandomString(10);
  $jpg_image = imagecreatefromjpeg('voucher.jpg');
  $white = imagecolorallocate($jpg_image, 20, 16, 6);
  $font_path = 'font.TTF';
  $text = "Voucher No: ".$vnum;
  imagettftext($jpg_image, 15, 0, 85, 680, $white, $font_path, $text);

  header('Content-type: image/jpeg');
  imagejpeg($jpg_image,"".$vnum.".jpg");
  header("Content-disposition: attachment; filename=".$vnum.".jpg");
  header('Content-Description: File Transfer');
  readfile("".$vnum.".jpg");
  imagedestroy($jpg_image);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню