Tôi tin rằng những gì Schneck nghĩa là:
header('Content-Type: '.$mime_type);
$fp = fopen('php://stdout', 'w+');
$image->writeImageFile($fp);
fclose($fp);
này thể nguyên nhân vấn đề, đặc biệt là trong các tập tin nhiều trang, vì vậy bạn nên có lẽ sử dụng:
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;
Điều này được kiểm tra và hoạt động ing.
Tôi nhận thấy đây là một câu hỏi cũ. Lý do tôi đăng bài này là nếu bạn muốn viết một tệp PDF nhiều trang, đây là giải pháp, vì giải pháp của Nabab chỉ hoạt động với các hình ảnh đơn lẻ.
Bạn cũng có thể sử dụng (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;
Bằng cách này có vẻ là nhanh hơn nếu phiên bản PHP của bạn hỗ trợ nó.
Trước khi bạn downvote, lý do tôi thêm này như là một câu trả lời và không phải là một bình luận là tôi không có đủ danh tiếng để bình luận. Hy vọng đó là alright. Chỉ muốn để có được điều này ra có trong trường hợp bất cứ ai cần nó.
Như minh họa trong ví dụ # 1: http://es2.php.net/manual/en/imagick.examples-1.php –
Tôi muốn đi với 'header ('Content-Type: image /'.$ img- > getImageFormat()); '- nhưng nếu không thì rất tốt :) – gnud
Yeah, tốt hơn :) – Nabab