php 图片添加图片水印,pdf添加文字水印

本文详细介绍了如何使用PHP为图片添加图片水印和在PDF文件中添加文字水印,提供了相应的代码片段,包括使用`imagecreatefromjpeg`和`imagecopy`函数处理图片,以及使用Mpdf类在PDF中设置和应用水印。

php 图片添加图片水印,pdf添加文字水印

php 图片添加图片水印,代码如下:

	 /**
     * 图片添加图片水印
     * $src  原始图片路径
     * $watermarkPath  水印图片路径
     * $outputPath  保存带水印的图片路径
     */
    public function img_water_mark($src,$watermarkPath,$outputPath) {
        $source = imagecreatefromjpeg($src); // 打开原始图片
        $watermark = imagecreatefrompng($watermarkPath); // 打开水印图片
        $sourceWidth = imagesx($source); // 原始图片宽度
        $sourceHeight = imagesy($source); // 原始图片高度
        $watermarkWidth = imagesx($watermark); // 水印图片宽度
        $watermarkHeight = imagesy($watermark); // 水印图片高度
        $x = $sourceWidth - $watermarkWidth - 10; // 水印左上角的x坐标
        $y = $sourceHeight - $watermarkHeight - 10; // 水印左上角的y坐标
        imagecopy($source, $watermark, $x, $y, 0, 0, $watermarkWidth, $watermarkHeight); // 将水印图片拷贝到原始图片上
        imagejpeg($source, $outputPath); // 保存带水印的图片
        imagedestroy($source); // 销毁原始图片资源
        imagedestroy($watermark); // 销毁水印图片资源
    }

pdf添加文字水印,代码如下:

	/**
  	* pdf添加文字水印
   	* $path  pdf文件路径
   	* $save_file_path  保存带水印的pdf路径
 	*/
public function watermark($path,$save_file_path) {
	$mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/tmp']);
	//这里是给pdf文件加水印
	$w = '我是水印';
 	$mpdf->SetWatermarkText($w, 0.1);//水印文字,透明度
 	$mpdf->showWatermarkText = true; //开启水印
 	//$mpdf->watermarkAngle = '180';//水印角度
 	if (preg_match("/([\x81-\xfe][\x40-\xfe])/", $w, $match)) {
       //如果有中文就添加
         $mpdf->watermark_font = 'GB';//中文水印不乱码
     }
     $pageCount = $mpdf->SetSourceFile($path); //读取原始文件页数
      for ($i=1; $i<=$pageCount; $i++) { //循环添加原始文件
          $import_page = $mpdf->ImportPage($i);
          $mpdf->UseTemplate($import_page);
          if ($i < $pageCount)
              $mpdf->AddPage();
      }
      $mpdf->Output($save_file_path, 'F'); //保存新文件
}
	
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值