2013-08-07 188 views
-1

基本上我必須使用身份證PHP的東西,需要我添加參與者的名稱並上傳圖片。我有一個ID卡的基本模板,我使用PHP來添加名稱。我必須在特定位置添加參與者的照片。該名稱正在工作,但我無法在生成的PHP圖像上添加參與者的圖片。這裏是我的代碼:PHP圖像 - 使用PHP創建的另一個圖像上添加圖像

http://chopapp.com/#arcqwgf4

我應該如何去增加在PHP圖片生成圖像。

很抱歉,如果這是令人困惑:/

回答

0

您已經使用GD的方式已經很多了,您需要做的就是使用imagecopymerge在基礎圖像的指定點上繪製一個圖像在另一個圖像上。 PHP.net在鏈接頁面上有很多例子。

+0

這個http://chopapp.com/#6m56tq6u有什麼問題,它不會輸出圖像。 – Tayyab

+0

如果直接訪問腳本,腳本會輸出什麼內容?另外,你是否檢查過錯誤日誌以查看是否有錯誤被拋出?我有一種感覺,它與'$ _POST ['id']' – bizzehdee

+0

$ _POST ['id']在我添加imagecopymerge函數之前工作。它應該在屏幕上輸出最終圖像,但不顯示任何內容。 – Tayyab

0

使用Imagick對於喜歡這些東西。有一種名爲combineImages()的方法,可以實現您的目標。

+0

是不是可以由我所用的方法來做到這一點?我不知道Imagick:S – Tayyab

0

你可以在php中使用imagecopyresampled方法。

我在這裏創建了一個示例:http://artuc.my.phpcloud.com/artuc/輸入name,id並選擇一個圖像進行放置。

這裏是我使用的代碼:

header('Content-Type: image/jpeg'); 
    $canvasImage = imagecreatefromjpeg('sample.jpg'); 
    $bgcolor = imagecolorallocate($canvasImage, 255, 255, 255); 
    imagefill($canvasImage, 0, 0, $bgcolor); 

    //Place person picture 
    $bgImage = $_POST['idPic']; 
    $img = imagecreatefromjpeg($bgImage); 
    $imageSize = getimagesize($bgImage); 
    imagecopyresampled($canvasImage, $img, 15, 17, 0, 0, $imageSize[0], $imageSize[1], $imageSize[0], $imageSize[1]); 

    $fontFile = "Arial.ttf"; 
    //Place person name 
    $black = imagecolorallocate($canvasImage, 0, 0, 0); 
    imagettftext($canvasImage, 18, 0, 220, 35, $black, $fontFile, $_POST['idName']); 

    //Place person id 
    $black = imagecolorallocate($canvasImage, 0, 0, 0); 
    imagettftext($canvasImage, 18, 0, 220, 75, $black, $fontFile, $_POST['idNum']); 

    //Save Image 
    imagejpeg($canvasImage); 
    imagedestroy($canvasImage);