2011-03-18 69 views
4

我目前使用以下script--如何在使用php创建文本图像时添加背景图片?

<?php 
// Set the content-type 
header('Content-type: image/png'); 

// Create the image 
$im = imagecreatetruecolor(400, 30); 

// Create some colors 
$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 115, 150, 195); 
imagefilledrectangle($im, 0, 0, 399, 29, $white); 

// The text to draw 
$text = 'My Name'; 
// Replace path by your own font path 
$font = 'AGENCYB.TTF'; 

// Add some shadow to the text 
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); 

// Add the text 
imagettftext($im, 20, 0, 10, 20, $black, $font, $text); 

// Using imagepng() results in clearer text compared with imagejpeg() 
imagepng($im); 
imagedestroy($im); 
?> 

但我想添加一个背景图片了。请帮忙,我特别对这个功能很陌生。

+1

功能则需要:['imagecreatefromjpeg()'](http://php.net/manual/en/function.imagecreatefromjpeg.php)或 “从” 功能等中的一个,并[' imagecopy()'](http://php.net/manual/en/function.imagecopy.php)或['imagecopyresampled()'](http://php.net/manual/en/function.imagecopyresampled.php ) – 2011-03-18 17:24:54

+0

感谢Pekka的帮助! – 2011-03-18 17:25:42

回答

0

会像下面的东西为你工作?您想要打开要用作背景的图像,然后将文字写在顶部。

<?php 
    // Set the content-type 
    header('Content-type: image/png'); 

    /* Attempt to open */ 
     $im = @imagecreatefrompng('backgroundimage.png'); 

     /* See if it failed */ 
     if(!$im) 
     { 
      // Create some colors 
     $white = imagecolorallocate($im, 255, 255, 255); 
     $grey = imagecolorallocate($im, 128, 128, 128); 
     $black = imagecolorallocate($im, 115, 150, 195); 
     imagefilledrectangle($im, 0, 0, 399, 29, $white); 

     // The text to draw 
     $text = 'My Name'; 
     // Replace path by your own font path 
     $font = 'AGENCYB.TTF'; 

     // Add some shadow to the text 
     imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); 

     // Add the text 
     imagettftext($im, 20, 0, 10, 20, $black, $font, $text); 

     // Using imagepng() results in clearer text compared with imagejpeg() 
     imagepng($im); 
     imagedestroy($im); 


     }else 
    { 
     //you want to do something here if your image didn't open like maybe fpassthru an alternative image 
    } 
?> 
+1

感谢这工作。非常感谢Creuzerm帮助我。 – 2011-03-19 04:30:37

+1

必须有'if($ im)'而不是'if(!$ im)' – XIMRX 2014-07-02 07:36:14