图片上添加自定义字体的文字水印

<?php
/**
 * 图片上添加自己的文字水印
 * @author Recoder
 */
class ImageAddText {
	protected $imagePath;
	protected $image;
	protected $width;
	protected $height;
	protected $type;   //文件类型
	protected $mime;

	protected $fontPath;

	public function __construct() {
		$this->imagePath = null;
		$this->imagePath = null;
		$image = null;
	}

	public function  __destruct() {
		if(isset($image)) {
			imagedestroy($image);
		}
	}

	//为图片和文字添加路径
	public function addPath($filepath, $fontpath='') {
		$this->imagePath = $filepath;
		//获得图片信息
		$info = getimagesize($filepath);
		$this->width = $info[0];
		$this->height = $info[1];
		$this->type = image_type_to_extension($info[2], false);
		$this->mime = $info['mime'];
		//内存中创建图片
		$func = "imagecreatefrom{$this->type}";
		$this->image = $func($filepath);

		$this->fontPath = $fontpath;
	}

	//添加文字
	public function addText($text, $r=0, $g=0, $b=0, $x=20, $y=20, $fontsize=20, $alpha=20) {
		//文字颜色
		$color = imagecolorallocatealpha($this->image, $r, $g, $b, $alpha);
		//文字写入图像中
		imagettftext($this->image, $fontsize, 0, $x, $y, $color, $this->fontPath, $text);
	}

	//显示在浏览器上
	public function display() {
		header('Content-type:'.$this->mime);
		$func = "image{$this->type}";
		$func($this->image);
	}

	//保存
	public function save($savepath='') {
		$func = "image{$this->type}";
		$func($this->image, $savepath);
	}
}


使用

$a = new ImageAddText();
$a->addPath('day1/1.jpg', 'day1/font.ttf');
$a->addText('Hello World', 255, 255, 255, 100, 100, 50);
$a->display();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值