0

我想获取外部 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);

这似乎不起作用。

有什么好的解决办法吗?

4

1 回答 1

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);
?>

修改它,使其适合您的需求。您还应该考虑使用正则表达式而不是explode(目前它仅适用&v=xyz于末尾带有短语的简单网址)。

于 2013-04-22T23:27:19.003 回答