Чтобы добавить текст к изображению, я использую приведенный ниже код с сайта
<?php
//Set the Content Type
header('Content-type: image/jpeg');
// Create Image From Existing File
$jpg_image = imagecreatefromjpeg('sunset.jpg');
// Allocate A Color For The Text
$white = imagecolorallocate($jpg_image, 255, 255, 255);
// Set Path to Font File
$font_path = 'font.TTF';
// Set Text to Be Printed On Image
$text = "This is a sunset!";
// 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);
?>
Это работает хорошо, но я не могу сохранить в рис для сохранения текстового файла, я использую это
функция
function write($post,$myFile){
$fh = fopen($myFile, 'a+') or die("can't open file");
fwrite($fh, $post);
fclose($fh);
}
Есть ли способ сохранить изображение в формате jpg?
Это мой собственный код и работает хорошо! Просто измените имя name.jpg к имя файла, что вы хотите:
<?php
header('Content-type: image/jpeg');
// Create Image From Existing File
$jpg_image = imagecreatefromjpeg('sunset.jpg');
//$jpg_image=imagecreatetruecolor(100,100);
// Allocate A Color For The Text
$white = imagecolorallocate($jpg_image, 255, 255, 255);// Set Path to Font File
$font_path = 'font1.TTF';
// Set Text to Be Printed On Image
$text = "This is a sunset!";
// Print Text On Image
$x=20;
for($i=0;$i<=strlen($text);$i++){
$print_text=substr($text,$i,1);
$x+=20;
imagettftext($jpg_image, 30, 0, $x, 200, $white, $font_path, $print_text);
}// Send Image to Browser
imagejpeg($jpg_image,'name.jpg');
// Clear Memory
imagedestroy($jpg_image);
?>
Мой код немного отличается от вашего, один отличается от того, что Вы не изменили место указателя, место, куда вы собираетесь поместить своего персонажа Я имею в виду $ х:
imagettftext($jpg_image, 30, 0, $x, 200, $white, $font_path, $print_text);
И еще один другой персонаж, вы дали строку (не характер) к imagettftext функция, но я даю один символ. Я думаю, что символ лучше, чем строка. В частности, для создания капчи.
Чтобы сохранить изображение в файле вместо его вывода, просто измените строку imagejpeg($jpg_image);
в imagejpeg($jpg_image, 'yourfile.jpg');
(Вы также можете удалить header('Content-type: image/jpeg');
в этом случае).
Проверьте этот код. Это так же, как ваш код, только разница
imagejpeg($jpg_image,"imagefolderpath/image.jpg");
вместо imagejpeg($jpg_image);
Может быть, это полезно для вас.
<?php
header('Content-type: image/jpeg');
$jpg_image = imagecreatefromjpeg('sunset.jpg');
$white = imagecolorallocate($jpg_image, 255, 255, 255);
$font_path = 'font.TTF';
$text = "This is a sunset!";
imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
imagejpeg($jpg_image,"imagefolderpath/image.jpg");
imagedestroy($jpg_image);
?>