<?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);
}
}
PHP图片合成加水印并生成缩略图
猜你喜欢
转载自blog.csdn.net/zhc2006/article/details/51434782
今日推荐
周排行