Я сейчас пользуюсь imagecreatefromjpeg()
добавить текст к изображению.
У меня это работает, все мои файлы находятся в одной папке, однако я использую CodeIgniter, поэтому мои файлы распределены по разным папкам.
Какой обходной путь для этого?
Я думал поместить все мои необходимые файлы в мои представления, однако это не работало.
Смотри ошибку
Обнаружена ошибка PHP
Серьезность: Предупреждение
Сообщение: imagettftext (): не удалось найти / открыть шрифт
Имя файла: views / coupon.php
Номер строки: 30
См код
<?php
//Report any errors
ini_set("display_errors", "1");
error_reporting(E_ALL);
//Set the Content Type
// header('Content-type: image/jpeg');
// Create Image From Existing File
$jpg_image = imagecreatefromjpeg('http://localhost:8888/game/rcw/assets/couponWrite.jpg');// Allocate A Color For The Text
$white = imagecolorallocate($jpg_image, 155, 155, 155);
// Set Path to Font File
$font_path = 'http://localhost:8888/game/rcw/application/views/Arial.ttf';
// Set Text to Be Printed On Image
$text = "IGL" . rand(55555,99999);
// Print Text On Image
imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
// Send Image to Browser
imagejpeg($jpg_image);
// Clear Memory
imagedestroy($jpg_image);?>
Все, что вам нужно сделать, это получить доступ к файлу изображения, используя его путь, либо относительно пути к файлу PHP, который его обрабатывает, либо, что лучше, его абсолютный путь. Например, скажем, ваш код находится в контроллере, в файле application/controllers/myImageProcessor.php
и вы хотите загрузить файл, хранящийся в application/input-files
, напишите что-нибудь и сохраните измененную версию в public/images
, Вы генерируете пути к файлам следующим образом:
// input path is '../input-files/'
$inputPath = dirname(__FILE__).'/input-files/'; // this is an absolute path
$inputName = 'original.jpg';
// output path is '../../public/images/'
$outputPath = dirname(dirname(__FILE__)).'/public/images/';
$outputName = 'modified.jpg';
// load image from file
$img = imagecreatefromjpeg($inputPath.$inputName);
// ...
// write on $img here...
// ...
// save it to other file
imagejpeg($img, $outputPath.$outputName, 95);
Не стоит хранить все файлы в одном каталоге. Кроме того, не смешивайте код с HTML / JS / CSS и никогда не помещайте в один и тот же каталог исходные файлы со сгенерированными файлами или файлами, полученными из внешних источников (например, загруженных пользователями).
Других решений пока нет …