下面程式碼如果不使用ob快取則可能圖片輸出失敗,原因是因為輸出圖片資料之前有資料輸出。所以需要清除輸出圖片之前的資料
public function waterLookOne($water_mark){
// 首先我們從 GD 手動建立水印影像
$stamp = imagecreatetruecolor(500, 300);
// 畫一個矩形(這裡主要將背景顏色填充為白色)
imagefilledrectangle($stamp, 0, 0, 500, 300, 0xFFFFFF);
// 字型顏色
$black = imagecolorallocate($stamp, 0, 0, 0);
// The text to draw
for($i = 0; $i <= 10; $i++){
$water_mark = $water_mark.' '.$water_mark;
}
// Replace path by your own font path
// ROOT_PATH .'public/101440.ttf';
$font = $this->fontFile;
for($i=0; $i < 10; $i++){
// Add some shadow to the text
imagettftext($stamp, $this->fontSize, 30, 10, 10+($i*100), $black, $font, $water_mark);
}
ob_start();
imagepng($stamp);
imagedestroy($stamp);
$produced = ob_get_contents();
ob_end_clean();
header("Content-type: image/png");
echo $produced;die;
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結