Как я вижу, есть слишком много ответов, которые недостаточно точны, поэтому вот мои:
Это напечатает изображение, как вы делаете это сейчас (к моменту постановки этого вопроса). В качестве альтернативы ответа @Vasil Dakov вы должны изменить фрагмент, который я вам дал, так:
<?php
// ... Image generation goes here
header("Content-Type: image/jpeg");
ob_start();
print $im->getImageBlob();
$the_outputted_image = ob_get_flush();
?>
// Assuming that you use MVC approach and you are storing $the_outputted_image in a object and passing it to the view(ie. index.html or the HTML below the code).
//... Html code of index.html
<img src="data:image/jpg;base64 <?php print $the_outputted_image; ?>" alt="image" title="IMagick Generated Image" />
В качестве другой альтернативы - создание сценария для создания изображения, сохраните его в какой-либо папке (при условии, что img / - это папка) и верните в файл только путь + имя файла + расширение:
<?php
// ... Image generation goes here
header("Content-Type: image/jpeg");
$filename = 'img/' . md5(microtime()) . '.jpg'// Microtime is just as an example, you should use your own method.
$fp = fopen($filename, "x"); //Creating and opening the file for write-only
$im->writeImageFile($fp); //Writing the image to the file pointer (I would recommend writing it using, fwrite(), because it is binary-safe writing method)
fclose($fp);
?>
// Html
<img src="<?php print $filename; ?>" alt="image" title="IMagick Generated Image" />
документация для Imagick :: writeImageFile