PHP图片合成加水印并生成缩略图

<?php 
class Create_pic {
		
	public function __construct()  {  
	//	header("content-type: image/jpeg");
	} 
		/************************************ 
	//函数: create($backgroundimg, $productimg, $savepath) 添加水印 
	//参数: $backgroundimg 必选,背景图; $productimg 必选,要合成的产品图片; $savepath 保存地址及图片名
	//示例: create('background.png', 'product.png', "pic/a.jpg");
	*************************************/ 
	public function create($backgroundimg, $productimg, $savepath){
		
		$background = getimagesize($backgroundimg); 
		switch($background[2]){ 
			case 1: 
				$dest1 = imagecreatefromgif($backgroundimg);
			break; 
			case 2; 
				$dest1 = imagecreatefromjpeg($backgroundimg);
			break; 
			case 3; 
				$dest1 = imagecreatefrompng($backgroundimg);
			break; 
		}
		$product = getimagesize($productimg); 
		switch($product[2]){ 
			case 1: 
				$scouce1 = imagecreatefromgif($productimg);
			break; 
			case 2; 
				$scouce1 = imagecreatefromjpeg($productimg);
			break; 
			case 3; 
				$scouce1 = imagecreatefrompng($productimg);
			break; 
		}
			
		imagecopy($dest1,$scouce1,60,81,0,0,118,114);
		imagejpeg($dest1,$savepath);
		imagedestroy($dest1);
		imagedestroy($scouce1);
	}
	
	/**
	//函数: watermark($bigimg, $smallimg, $savepath) 添加水印 
	//参数: $bigimg 必选。大图片--要加上水印的图片 $smallimg 必选。小图片 $savepath 保存地址及图片名
	//示例: watermark('datu.png', 'xiaotu.png', "pic/a.jpg");
	**/ 
	
	public function watermark($bigimg, $smallimg,$savepath){ 
		$bi = getimagesize($bigimg); 
		switch($bi[2]){ 
			case 1: 
				$im1 = imagecreatefromgif($bigimg);
			break; 
			case 2; 
				$im1 = imagecreatefromjpeg($bigimg);
			break; 
			case 3; 
				$im1 = imagecreatefrompng($bigimg);
			break; 
		} 
		$si = getimagesize($smallimg); 
		switch($si[2]){ 
			case 1: 
				$im2 = imagecreatefromgif($smallimg);
			break; 
			case 2; 
				$im2 = imagecreatefromjpeg($smallimg);
			break; 
			case 3; 
				$im2 = imagecreatefrompng($smallimg);
			break; 
		} 
		// 创建水印--原理:复制小图到大图上。这里注意坐标值的计算 
		imagecopy ( $im1, $im2, $bi[0]-$si[0]-35, $bi[1]-$si[1]-172, 0, 0, $si[0], $si[1] ); 
		switch($bi[2]){ 
			case 1: 
				imagegif($im1,$savepath);break; 
			case 2; 
				imagejpeg($im1,$savepath);break; 
			case 3; 
				imagepng($im1,$savepath);break; 
		} 
		imagedestroy($im1);imagedestroy($im2); 
	} 
	
	/**
	//函数: thumbnail($srcimg, $multiple) 生成一张缩略图 
	//参数:$srcimg 必选。源图片文件名 $multiple 可选。缩略倍数,默认为2倍,即缩小为原来的1/2  只支持gif、jpg、png的格式图片。 
	//示例: thumbnail('我的图片.jpg', 5,"生成图片路径"); 
	**/ 
	
	public function thumbnail($srcimg, $multiple=2,$savepath){ 
		$srcimg_arr = getimagesize($srcimg); 
		//计算缩略倍数 
		$thumb_width = $srcimg_arr[0] / $multiple; 
		$thumb_height = $srcimg_arr[1] / $multiple;  
		switch($srcimg_arr[2]){ 
			case 1: 
				$im = imagecreatefromgif($srcimg);break; 
			case 2; 
				$im = imagecreatefromjpeg($srcimg);break; 
			case 3; 
				$im = imagecreatefrompng($srcimg);break; 
		} 
		$thumb = imagecreatetruecolor($thumb_width, $thumb_height); //新建真彩色图像
		imagecopyresized($thumb, $im,0,0,0 ,0, $thumb_width,$thumb_height,$srcimg_arr[0], $srcimg_arr[1]); 
		switch($srcimg_arr[2]){ 
			case 1: 
				imagegif($thumb,$savepath);
			break; 
			case 2; 
				imagejpeg($thumb,$savepath);
			break; 
			case 3; 
				imagepng($thumb,$savepath);
			break; 
		} 
		imagedestroy($thumb); 
	} 
}

猜你喜欢

转载自blog.csdn.net/zhc2006/article/details/51434782