Как сохранить изображение после добавления текста в изображение

Чтобы добавить текст к изображению, я использую приведенный ниже код с сайта

<?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?

3

Решение

Это мой собственный код и работает хорошо! Просто измените имя 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 функция, но я даю один символ. Я думаю, что символ лучше, чем строка. В частности, для создания капчи.

2

Другие решения

Чтобы сохранить изображение в файле вместо его вывода, просто измените строку imagejpeg($jpg_image); в imagejpeg($jpg_image, 'yourfile.jpg'); (Вы также можете удалить header('Content-type: image/jpeg'); в этом случае).

0

Проверьте этот код. Это так же, как ваш код, только разница

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);
?> 
0
По вопросам рекламы [email protected]