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 の代わりに regexp を使用することも検討する必要があります (現時点では&v=xyz、末尾にフレーズがある単純な URL でのみ機能します)。

于 2013-04-22T23:27:19.003 に答える