九个不同位置的水印图片 要调数字 变化图片位置

<?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);

posted @ 2015-05-14 02:23  zwb8032fang  阅读(315)  评论(0编辑  收藏  举报