php多张图片上传加水印

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>发布新闻</title>
</head>
<SCRIPT language="javascript">
function tbladdrow()
{
var i=lines.rows.length ;
var row = Table1.insertRow(Table1.rows.length);
var col = row.insertCell(0);
col.innerHTML = "<INPUT class='inputbut' id=imgfile["+i+"] type='file' name=imgfile["+i+"] size='50'>";
}
function tbladdrows(items)
{
for( i = 1 ; i <= items ; i++)
{
tbladdrow();
}
}
function delrow()
{
if(lines.rows.length==0)
{
return false ;
}
lines.deleteRow();
}
</SCRIPT>

<body>
<?php
//水印函数——待处理的图片路径,水印,水印位置,处理图片后的名字 
function water($dimage,$wimage,$place,$iname)
{
     $water_info = getimagesize($dimage); 
         switch($water_info[2])//取得水印图片的格式 
        { 
            case 1:$dst = @imagecreatefromgif($dimage);break; 
            case 2:$dst = @imagecreatefromjpeg($dimage);break; 
            case 3:$dst = @imagecreatefrompng($dimage);break; 
        } 

      //获取一个图片,其它同理  ,返回一图像标识符,代表了从给定的文件名取得的图像。 
  
list($width,$height)=getimagesize($dimage);
//获取图片的宽高,赋给两个变量,getimagesize(),得到的是一个四个单元的数组,0,1索引对应的就是宽高

$water=imagecreatefromgif($wimage);


list($width_w,$height_w)=getimagesize($wimage);//水印的宽高


   switch($place)                                                        //水印添加的位置
   {
     case 1:$xpart=0;$ypart=0;break;//左上角
     case 2:$xpart=0.5;$ypart=0;break;//上中
     case 3:$xpart=1;$ypart=0;break;//右上角
     case 4:$xpart=0;$ypart=0.5;break;//中左
     case 5:$xpart=0.5;$ypart=0.5;break;//正中
     case 6:$xpart=1;$ypart=0.5;break;//中右
     case 7:$xpart=0;$ypart=1;break;//左下角
     case 8:$xpart=0.5;$ypart=1;break;//下中
     case 9:$xpart=1;$ypart=1;break;//右下角
   }
$x=($width-$width_w)*$xpart;//水印在处理图片上的横坐标,$width*$xpart-$width_w*$xpart,其中图片的左上角为0.0坐标
$y=($height-$height_w)*$ypart;//水印在处理图片上的竖坐标,$width*$xpart-$width_w*$xpart
@imagecopy($dst,$water,$x,$y,0,0, $width_w,$height_w);//处理图片,水印,水印放上去的位置,水印自身截取
//这是实现整个效果最重要的,整个过程可以这样理解,首先水印截取自身一部分,0,0表示从左上角以下的全部,然后放到需要处理图片的$x,$y位置上
@imagegif($dst,$iname);
//生成这个图片,存放路径是$iname
}



include_once("config.php");   // 数据库文件 


    $imgfile=$_FILES["imgfile"];
    $max_file_size=2097152;     //上传文件大小限制, 单位BYTE

$img_dir = "up/";
$uploaded = 0;
$unuploaded = 0;

for ($i=0; $i<=5; $i++)
{
    $is_file = $_FILES['imgfile']['name'][$i];
    if (!empty($is_file))
    {
               // 判断上传的图片的类型是不是jpg,gif,png,bmp中的一种,同时判断是否上传成功
        if ($_FILES['imgfile']['type'][$i] == "image/pjpeg"   ||$_FILES['imgfile']['type'][$i] == "image/gif"     ||$_FILES['imgfile']['type'][$i] == "image/x-png"   ||$_FILES['imgfile']['type'][$i] == "image/bmp")
        {
    if($_FILES['imgfile']['size'][$i] < $max_file_size)
{
              //如果上传的文件没有在服务器上存在
              if (!file_exists($img_dir . $_FILES['imgfile']['name'][$i]))
              {
                     //把图片文件从临时文件夹中转移到我们指定上传的目录中
          $name1 = $img_dir . $_FILES['imgfile']['name'][$i];
              move_uploaded_file($_FILES['imgfile']['tmp_name'][$i], $name1);
           
   $wimage="logo.gif";                                    //水印图片的路径
               water($name1,$wimage,9,$name1);       //待处理的图片路径,水印,水印位置,处理图片
   
      $sql = "insert into image(id, image) values(NULL, '$name1')";
           $resu = mysql_query($sql);
              }
   }   
        }
    } 
?>

<form action="" method="post" enctype="multipart/form-data" name="form2"  >

<tr>
<td><input id="addrow" name="addrow" type="button" value="加一张" οnclick="tbladdrow();" class="inputbut" ></td>
<td align="left"><input id="DelOneLine" name="DelOneLine" type="button" class="inputbut" value="删一张" LANGUAGE=javascript οnclick="return delrow()"></td>
</tr>
<tr>
<tbody>
<TABLE id=Table1>
<tbody id="lines" name="lines">
</tbody>
</TABLE>
</tr>
<tr>
<td align="left" colspan="2"><input type="submit" name="submit" value="提交"  class="inputbut" ></td>
</tr>
</form>

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值