开发者

Adding of Image Layer Fails (GD) PHP

I've installed the GD Library on my Apache just now, and it seems that my script below doesn't work. I'm trying to add a layer "play.png" to a youtube video thumbnail (http://img.youtube.com/vi/VIDEOID/default.jpg)

I've tried it with many different videoID's but the image doesn't load. There is a message that the graphic couldn't be opened because it contains errors.

I'm opening the file with postimage.php?v=7yV_JtFnIwo

http://img.youtube.com/vi/7yV_JtFnIwo/default.jpg opens correctly too...

Does anyone know where the issue could be?

Thanks in advance!

<?php

  // The header line informs the server of what to send the output
  // as. In this case, the server will see the output as a .png
  // image and send it as such

  header ("Content-type: image/png"); 


  // Defining the background image. Optionally, a .jpg image could 
  // could be used using imagecreatefromjpeg, but I personally 
  // prefer working with png

  $background = imagecreatefromjpeg("http://img.youtube.com/vi/".$_GET['v']."/default.jpg"); 


  // Defining the overlay image to be added or combined.

  $insert = imagecreatefrompng("play.png"); 


  // Select the first pixel of the overlay image (at 0,0) and use
  // it's color to define the transparent color

  imagecolortransparent($insert,imagecolorat($insert,0,0));


  // Get overlay image width and hight for later use

  $insert_x = imagesx($insert); 
  $insert_y = imagesy($insert); 


  // Combine the images into a single output image. Some people
  // prefer to use the imagecopy() function, but more often than 
  // not, it sometimes does not work. (could be a bug)

  imagecopymerge($background,$insert,0,0,0,0,$insert_x,$insert_y,100); 


  // Output the results as a png image, to be sent to viewer's
  // browser. The results can be displayed within an HTML document
  // as an image tag or background image for the document, tables,
  // or anywhere an image URL may be acceptable.

  imagepng($backgrou开发者_运维技巧nd,"",100); 

?>


Do not close (avoid whitespaces or newslines) your script with ?> and use NULL instead "".

imagepng($background, NULL); 

Then, in imagepng the quality parameter is between 0 and 9, as in http://it.php.net/manual/en/function.imagepng.php.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜