返回的imagecreatefromgif()不是有效的GIF文件

时间:2013-12-31 00:11:10

标签: php image file-get-contents

我正在尝试从外部网站上的.php文件中提取图像,这是一个gif(一帧)。我想最终把这些图像放到一个gif中,但这不是问题。每当我尝试将GIF保存为.pngs时,它会返回错误“不是有效的GIF文件”

include('GIFEncoder.class.php');
$user = $_GET['user'];
$url = 'http://link.com/image.php?username=' . $user . '';
$username = explode('=', $url);
$username = $username[1];
$img = 'image_cache/' . $username .'.gif';
file_put_contents($img, file_get_contents($url));
$i = imagecreatefromgif('image_cache/' . $username .  '.gif');
imagepng($i, "image_cache/". $username .".png");

确切的错误即将到来

警告:imagecreatefromgif()[function.imagecreatefromgif]:'image_cache / Lexo.gif'不是第9行z / projects / gif / index.php中的有效GIF文件

3 个答案:

答案 0 :(得分:1)

图像实际上是一个png。在文件上运行exif_imagetype,您将看到该类型为png。 gif后缀是一个错误。要做你想做的事,只需用.png后缀命名。

答案 1 :(得分:0)

您的代码应该更像:

if(isset($_GET['user'])){
  header('Content-type:image/png');
  $user = $_GET['user']; $img = imagecreatefrompng("image_cache/$user.png");
  imagepng($img); imagedestroy($img);
}

答案 2 :(得分:0)

试试这个代码来解决问题 somefilename is not a valid GIF file in..imagecreatefromgif()

$createFrom = imagecreatefromstring(file_get_contents($filepath));
imagecopyresampled();
imagegif();