#php #imagejpeg
#php #imagejpeg
Вопрос:
Решена проблема!!!
-
Как сказал Мони, мне нужно передать 3 параметра для
imagejpeg
небольшой коррекции, которой не должно бытьimagejpeg($im,$save,0)
, предполагаетсяimagejpeg($im,$save,100)
, что качество изображения должно быть 100, чтобы получить качественные изображения -
Папка с изображением без косой черты «images/ fb /»
-
Также для
imagecolorallocate
imagecolorallocate($im, 142, 011, 029)
трехзначного RGB, чтобы получить правильный вывод.
Итак, ответ на это и полный код приведены ниже
<?php
// Create image with 2 line of text
$im = imagecreatetruecolor(600, 300);
$text_color = imagecolorallocate($im, 142, 011, 029);
imagestring($im, 10, 5, 5, 'Some Text String', $text_color);
imagestring($im, 10, 5, 50, 'Some Text String 2', $text_color);
// Set the content type header as image/jpeg
header('Content-Type: image/jpeg');
// Output the image
//imagejpeg($im); //up-to this point its working well
$name="test2";
$save = "images/fb/". strtolower($name) .".jpeg";
imagejpeg($im, $save, 100); //Saves the image
imagejpeg($im); //Displays the image
// Free up memory
imagedestroy($im);
?>
Проблема
Пожалуйста, помогите мне решить эту проблему, которая у меня есть,
Я пытаюсь создать изображение с помощью php и пытаюсь сохранить созданное изображение внутри папки, изображение отображалось, но когда я добавляю сохранение в папку, оно выдает ошибку. ниже приведен код, который я пробовал.
<?php
// Create image with 2 line of text
$im = imagecreatetruecolor(600, 300);
$text_color = imagecolorallocate($im, 142, 11, 29);
imagestring($im, 10, 5, 5, 'Some Text String', $text_color);
imagestring($im, 10, 5, 50, 'Some Text String 2', $text_color);
// Set the content type header as image/jpeg
header('Content-Type: image/jpeg');
// Output the image
//imagejpeg($im); //up-to this point its working well
$name="test";
$save = "/images/fb/". strtolower($name) .".jpeg";
imagejpeg($im, $save, 0, NULL);
// Free up memory
imagedestroy($im);
?>
ниже приведена ошибка, которую я получаю
The image "path" cannot be displayed because it contains errors.
моя структура папок
->www
-> projectFolder
-> subFolder
->phpFile
->imageFolder (images)
->imageSubFolder (fb)
Я тоже пробовал chmod
, но, похоже, его разрешение не является проблемой, потому что я пытаюсь сделать это в Localhost.
Любые советы будут оценены…
Комментарии:
1. Вы уверены, что этот путь
/images/fb/
существует?/
означает, что это основная папка на сервере, а не ваша локальнаяimages/fb/
папка2. Возможно, ваш путь неверен? В чем ошибка?
3. «… выдает ошибку» … и ошибка?
4.
$save = "/path/to/www/images/fb/". strtolower($name) .".jpeg";
Вам нужно либо использовать полный путь к серверу, либо использовать относительный путь и опустить косую черту перед изображениями$save = "images/fb/". strtolower($name) .".jpeg";
5. Я попробовал использовать относительный путь, опустив / перед изображениями, это не помогает.
Ответ №1:
Вы создаете изображение как $im
, а затем пытаетесь сохранить его как .$my_img
Измените это: imagejpeg($my_img, $save, 0);
Для: imagejpeg($im, $save, 0);
Комментарии:
1. Да, это ошибка, «Исправленная», хотя проблема все та же: (
2. И просто для пояснения, Null также можно использовать в качестве параметра для
imagejpeg
в соответствии с руководством по PHP .. если я не устанавливаю какое-либо качество для изображения.3. imagejpeg имеет только 3 параметра. Вы можете использовать NULL для параметра $to, если вы хотите установить качество и не хотите указывать параметр $to: php.net/manual/en/function.imagejpeg.php
4. Спасибо moni_dragu, есть несколько идей, которые необходимо изменить вместе с вашим предложением. Спасибо, что направили меня!