<?php
function createTicketImage($ticketNumber, $buyerName, $buyerID) {
// Создаем новое изображение
$imageWidth = 600;
$imageHeight = 400;
$image = imagecreatetruecolor($imageWidth, $imageHeight);
if (!$image) {
echo "Не удалось создать изображение";
return;
}
// Загружаем фоновое изображение
$backgroundImagePath = 'image.png';
$backgroundImage = imagecreatefrompng($backgroundImagePath);
if (!$backgroundImage) {
echo "Не удалось загрузить фоновое изображение";
return;
}
// Получаем размеры фонового изображения
$bgWidth = imagesx($backgroundImage);
$bgHeight = imagesy($backgroundImage);
// Масштабируем фоновое изображение
$newBgWidth = $imageWidth;
$newBgHeight = $imageHeight;
$scaledBgImage = imagecreatetruecolor($newBgWidth, $newBgHeight);
if (!$scaledBgImage) {
echo "Не удалось создать масштабированное фоновое изображение";
return;
}
imagecopyresampled($scaledBgImage, $backgroundImage, 0, 0, 0, 0, $newBgWidth, $newBgHeight, $bgWidth, $bgHeight);
// Копируем масштабированное фоновое изображение на холст
if (!imagecopy($image, $scaledBgImage, 0, 0, 0, 0, $newBgWidth, $newBgHeight)) {
echo "Не удалось скопировать фоновое изображение";
return;
}
// Задаем цвет текста
$textColor = imagecolorallocate($image, 0,0,0);
// Добавляем текст
$font = 'font.otf'; // путь к файлу шрифта TrueType
$text = "Лотерейный билет №: $ticketNumber\nДата: " . date('Y-m-d') . "\nПокупатель: $buyerName\nID Покупателя: $buyerID";
$textX = 20;
$textY = 20;
$fontSize = 16;
$angle = 0;
// Рассчитываем размер текста
$textBoxSize = imagettfbbox($fontSize, $angle, $font, $text);
$textWidth = $textBoxSize[2] - $textBoxSize[0];
$textHeight = $textBoxSize[7] - $textBoxSize[1];
// Позиционируем текст по горизонтали и вертикали
$textX = ($imageWidth - $textWidth) / 2;
$textY = ($imageHeight - $textHeight) / 2 + $textHeight;
// Добавляем текст на изображение
if (!imagettftext($image, $fontSize, $angle, $textX, $textY, $textColor, $font, $text)) {
echo "Не удалось добавить текст на изображение";
return;
}
// Выводим изображение в поток
header('Content-Type: image/png');
if (!imagepng($image)) {
echo "Не удалось вывести изображение";
return;
}
// Очищаем память
imagedestroy($image);
imagedestroy($backgroundImage);
imagedestroy($scaledBgImage);
}
// Пример использования:
$ticketNumber = generateTicketNumber();
$buyerName = "Иванов Иван";
$buyerID = "12345";
createTicketImage($ticketNumber, $buyerName, $buyerID);
это код работает на версия php 7.2
когда изменил версия 8.1 не работает нормально
версия 7.1 добавил текст в фото
версия 8.1 не добавляются текст в фото что может быть причиной спасибо кто помогает заранее