Я использую Imagick lib для внесения некоторых изменений в исходное изображение. Затем я хотел бы выводить его непосредственно в браузер без сохранения. Есть ли способ сделать это?
 Я попытался использовать Imagick::writeImage('STDOUT') (пустой вывод) и 'php: // stdout' с ошибкой «Невозможно записать в файл». 
Есть идеи? 🙂
Вам просто нужно повторить свой воображаемый объект:
 $img = new Imagick($file); header('Content-Type: image/'.$img->getImageFormat()); echo $img; 
Я считаю, что Schneck означает:
 header('Content-Type: '.$mime_type); $fp = fopen('php://stdout', 'w+'); $image->writeImageFile($fp); fclose($fp); 
Это может вызвать проблемы, особенно в многостраничных файлах, поэтому вы, вероятно, должны использовать:
 ob_start(); $fp = fopen('php://output', 'w+'); $image->writeimagefile($fp); // or writeImagesFile for multipage PDF fclose($fp); $out = ob_get_clean(); header('Content-Length: '.strlen($out)); echo $out; 
Это проверено и работает.
Я понимаю, что это старый вопрос. Причина, по которой я публикую это, заключается в том, что если вы хотите написать многостраничный PDF-файл, это решение, так как решение Nabab работает только для одиночных изображений.
Вы также можете использовать (PHP 5.1.0+):
 $fp = fopen('php://temp', 'r+'); $image->writeimagesfile($fp); rewind($fp); $out = stream_get_contents($fp); header('Content-Length: '.strlen($out)); fclose($fp); echo $out; 
Этот способ кажется более быстрым, если ваша версия PHP поддерживает его.
Прежде чем вы спустили вниз, причина, по которой я добавил это как ответ, а не комментарий, у меня нет достаточной репутации для комментариев. Надеюсь, что все в порядке. Просто хотел получить это там, если кому-то это понадобилось.
Если вы используете HHVM, он будет генерировать фатальное исключение, если вы просто попробуете эхо объекта Imagick, поэтому вам нужно будет вызвать getimageblob ();
 $imagick = new Imagick('my-image.jpg'); header('Content-Type: image/' . $imagick->getImageFormat()); echo $imagick->getimageblob(); 
  Вы пробовали Imagick::writeImageFile("php://stdout") (untested)?