昨天接到一個PHP項目,其中有個小功能:PHP圖片和文字合成,如下需求和代碼:
將上一頁傳遞過來的姓名、性別、服務時長,合成到當前頁面的圖片上。
<?php
//處理
$name = empty($name) ? "" : $name;
$sex = empty($sex) ? "" : $sex;
$fw = empty($fw) ? "" : $fw;
?>php
<img src="<?php echo createNewPic($name,$sex,$fw);?>">ide
<?php
function createNewPic($names,$sexs,$fws)
{
//背景圖片
$path_1 = 'img/bg2.png';
//照片
$path_2= 'img/1.png';
//建立圖片對象
$image_1 = imagecreatefrompng($path_1);
$image_2 = imagecreatefrompng($path_2);字體
//合成圖片 imagecopymerge($image_1, $image_2, 49, 111, 0, 0, imagesx($image_2), imagesy($image_2), 100); //這是要插入到圖片的文字 $name =$names; $sex =$sexs; $fw ="您本次志願者服務時長爲".$fws."小時"; //文件名 $filename="mlj"; //設置文字顏色 $black = imagecolorallocate($image_1, 41, 80, 49); //寫的文字用到的字體 $font = 'img/msyh.ttf'; $font2= 'img/msyhbd.ttf'; //在圖片裏插入文字$black imagettftext($image_1, 25, 0, 270, 320, $black,$font, $name); imagettftext($image_1, 14, 0, 380, 320, $black,$font, $sex); imagettftext($image_1, 22, 0, 125, 670, $black,$font2, $fw); //這是合成後的圖片保存的路徑 $upload_dir = "public/"; $pic=$upload_dir.$filename.''.microtime().'.png'; imagepng($image_1,$pic); return $pic; } ?>