如何用PHP渲染远程图像?

Rya*_*yan 1 php image header http-headers

这是一个jpg: http://i.stack.imgur.com/PIFN0.jpg

stackoverflow logo jpg

让我们说我喜欢这个渲染 /img.php?file_name=PIFN0.jpg

这是我试图让这项工作的方式:

/sample.php

<p>Here's my image:</p>
<img src="/img.php?file_name=PIFN0.jpg">
Run Code Online (Sandbox Code Playgroud)

/img.php

<?php
    $url = 'http://i.stack.imgur.com/' . $_GET['file_name'];
    header('Content-type: image/jpeg');
    imagejpeg($url);
?>
Run Code Online (Sandbox Code Playgroud)

我希望/sample.php能够显示图像.但这不起作用.我得到的只是一张破碎的图像.我究竟做错了什么?

Dan*_* Li 7

用途imagecreatefromjpeg:

<?php
    $url = 'http://i.stack.imgur.com/' . $_GET['file_name'];
    header('Content-type: image/jpeg');
    imagejpeg(imagecreatefromjpeg($url));
?>
Run Code Online (Sandbox Code Playgroud)

参考:http://php.net/manual/en/function.imagecreatefromjpeg.php


Dev*_*ger 5

这是一个工作示例:

<?php
function img_create($filename, $mime_type) 
{  
  $content = file_get_contents($filename);
  $base64   = base64_encode($content); 
  return ('data:' . $mime_type . ';base64,' . $base64);
}
?>

<img src="<?php print img_create('http://tuxpaint.org/stamps/stamps/animals/birds/cartoon/tux.png','image/png'); ?>" alt="random logo" />
Run Code Online (Sandbox Code Playgroud)