我尝试使用php GD在youtube缩略图上叠加一些文字,但这似乎不起作用。 我试过的代码是:
<?php
$im = file_get_contents('http://i.ytimg.com/vi/6E9wBFl5o-c/mqdefault.jpg');
$image = imagecreatefromjpeg($im);
$font_size = 14;
$color = imagecolorallocate($image, 255,255,255);
$black = imagecolorallocate($image, 0,0,0);
// and now we do the overlay - the layers of text start top to bottom, so
// the drop shadow comes first
// $image - the base image file we specified above
// $font_size - Well duh. Its the size of the font
// 0 - the angle of the text - we don't want an angle, so we leave it at 0
// 56 - pixels to the right from the leftmost part of the image
// 36 - pixels down from the top of the image
// $black - the color we defined above
// "Test Text" - the text we're overlaying - you can also use a variable here
ImageTTFText ($image, $font_size, 0, 56, 36, $black, "font.ttf","Test Text");
// Now add the actual white text "on top"
ImageTTFText ($image, $font_size, 0, 55, 35, $color, "font.ttf","Test Text");
header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
那么如何通过写在上面的文字返回图像。
答案 0 :(得分:1)
imagecreatefromjpeg需要一个文件名作为参数,请参阅http://php.net/manual/function.imagecreatefromjpeg.php
这应该有效:
$image = imagecreatefromjpeg('http://i.ytimg.com/vi/6E9wBFl5o-c/mqdefault.jpg');
答案 1 :(得分:1)
要调试脚本,您可以在浏览器中访问该URL。任何警告或错误消息都是可读的。
一个简单的错误是你在标题中声明了一个JPG文件,但是返回了一个PNG文件。
header("Content-type: image/jpg");
imagepng($image);
还要确保可以从PHP文件中真正访问字体文件。