2013-04-22 80 views
0

我想要获取外部URL,转换为灰度,然后将其显示给浏览器。来自外部URL的灰度图像

我尝试使用GD与下面的代码:

$youtube_id = explode('&v=', $video['youtube_link'])[1]; 
           $image_colour = "http://img.youtube.com/vi/$youtube_id/0.jpg"; 
           $im = imagecreatefromjpeg($image_colour); 
           $image_gray = imagefilter($im, IMG_FILTER_GRAYSCALE); 
           imagejpeg($im, $youtube_id); 

这似乎并不奏效。

有没有什么好的解决方案?

+0

究竟是不是工作,请描述结果/ error-msg? – michi 2013-04-22 22:33:36

+0

没有错误信息。只是不显示图像 – 2013-04-22 22:41:52

回答

0

如果要显示图像,则需要设置正确的标题。

我编辑你的代码了一下,在这里你有一个工作示例:

<?php 
$video = "https://www.youtube.com/watch?v=0aFkZET3A8A"; 
$url_parts = explode('v=', $video); 
$youtube_id = $url_parts[1]; 
$image_colour = "http://img.youtube.com/vi/$youtube_id/0.jpg"; 
$im = imagecreatefromjpeg($image_colour); 
$image_gray = imagefilter($im, IMG_FILTER_GRAYSCALE); 
header('Content-Type: image/jpeg'); 
imagejpeg($im); 
?> 

修改它,所以它适合您的需要。你也应该考虑使用正则表达式而不是爆炸(现在它只适用于最后带有&v=xyz短语的简单网址)。

+0

我最终使用timthumb进行此操作。无论如何感谢您的信息 – 2013-04-23 02:25:36