关于GD和OB缓存的输出
下面代码如果不使用ob缓存则可能图片输出失败,原因是因为输出图片数据之前有数据输出。所以需要清除输出图片之前的数据
imagecolorallocatealpha
imagecopyresized
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 协议》,转载必须注明作者和本文链接