标签:
<?php
$create_func_list=array(
‘image/jpeg‘=>‘imagecreatefromjpeg‘,
‘image/png‘=>‘imagecreatefrompng‘,
‘image/gif‘=>‘imagecreatefromgif‘,
);
$out_func_list=array(
‘image/jpeg‘=>‘imagejpeg‘,
‘image/png‘=>‘imagepng‘,
‘image/gif‘=>‘imagegif‘,
);
//画布的创建
$dst_file=‘./src.jpg‘;
$dst_info=getimagesize($dst_file);//获取文件额详细信息
$dst_create_func=$create_func_list[$dst_info[‘mime‘]];//这个是获取上面数组中的调用方式,也就是当不同的图片又不痛的出来方式
$dst_img=$dst_create_func($dst_file);//这个是传近的事jpg格式的文件用jpg的方式去使用
//索要用到的刻印图案
$stamp_file=‘./stamp.jpg‘;
$stamp_img=imagecreatefromjpeg($stamp_file);//创建一个已有的新图像
//采集
$stamp_area_x=0;
$stamp_area_y=0;
$stamp_area_w=$stamp_w=imagesx($stamp_img);
$stamp_area_h=$stamp_h=imagesy($stamp_img);
$pos=isset($_POST[‘pos‘])?$_GET[‘pos‘]:7;//这个是标志要选哪个
//增加水印的宽高
$dst_w=imagesx($dst_img);
$dst_h=imagesy($dst_img);
switch ($pos) {
case 1:
$dst_area_x=0;
$dst_area_y=0;//这个是默认的页面加载的第一个
break;
case 2:
$dst_area_x=($dst_w-$stamp_w)/2;//中间
$dst_area_y=0;
break;
case 3:
$dst_area_x=$dst_w-$stamp_w;
$dst_area_y=0;
break;
case 4:
$dst_area_x=0;
$dst_area_y=($dst_h-$stamp_h)/2;
break;
case 5:
$dst_area_x=($dst_w-$stamp_w)/2;
$dst_area_y=($dst_h-$stamp_h)/2;
break;
case 6:
$dst_area_x=$dst_w-$stamp_w;
$dst_area_y=($dst_h-$stamp_h)/2;
break;
case 7:
$dst_area_x=0;
$dst_area_y=$dst_h-$stamp_h;
break;
case 8:
$dst_area_x=($dst_w-$stamp_w)/2;
$dst_area_y=$dst_h-$stamp_h;
break;
case 9:
$dst_area_x=$dst_w-$stamp_w;
$dst_area_y=$dst_h-$stamp_h;
break;
default:
# code...
break;
}
$pct = 70;
imagecopymerge($dst_img, $stamp_img, $dst_area_x, $dst_area_y, $stamp_area_x, $stamp_area_y, $stamp_area_w, $stamp_area_h, $pct);
//输出,销毁
header(‘Content-Type: image/jpeg‘);
imagejpeg($dst_img);
imagedestroy($dst_img);
imagedestroy($stamp_img);
标签:
原文地址:http://www.cnblogs.com/love1226/p/4502265.html