来自外部URL的灰度图像

时间:2013-04-22 22:32:15

标签: php image-processing gd

我想获取外部网址,转换为灰度,然后将其显示在浏览器中。

我尝试使用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);

这似乎不起作用。

有什么好的解决方案吗?

1 个答案:

答案 0 :(得分: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);
?>

修改它以满足您的需求。您还应该考虑使用regexp而不是explode(现在它只适用于最后带有&v=xyz短语的简单URL)。