相信大家都知道怎么用PHP为图片增加文字水印可是如果水印效果为图片呢?该怎么办?别担心下文就为您分解我也是近日用到此功能所以去百度上搜集到了这篇文档希望对各位有所帮助
<form action="<?=$_SERVER[
PHP_SELF
]?>" method="post" enctype="multipart/form
data" name="form
" id="form
">
<table width="
" border="
" align="center" cellpadding="
" cellspacing="
">
<tr>
<td width="
" height="
" background="image/top
gif"><div align="center" class="style
">上传图片</div></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><div align="right">
<table width="
" border="
" align="center" cellpadding="
" cellspacing="
">
<tr>
<td width="
" height="
" nowrap="nowrap">路径
</td>
<td width="
"><input name="upfile" type="file" id="upfile" size="
" /></td>
</tr>
<tr>
<td height="
" colspan="
"><div align="center">
<input type="submit" name="Submit" value="提交" />
<input type="reset" name="Submit" value="重置" />
</div></td>
</tr>
</table>
</div>
<div align="center"></div></td>
</tr>
<tr>
<td> </td>
</tr><INPUT TYPE="hidden" name=
action
value=
doup
>
<tr>
<td height="
" background="image/top
gif"> </td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</form><br><A href=http://phpshao
cublog
cn target=_blank>龙的心专栏phpshao
cublog
cn</A>
<?
if($_POST[
action
]==
doup
)
{
$uptypes=array(
image/jpg
image/jpeg
image/pjpeg
image/gif
);//上传图片文件类型列表
$wFile=$_FILES[
upfile
];//取得文件路径
$waterimg="water
gif";//水印图片路径//print_r($wFile);
if(in_array($wFile[
type
]
$uptypes))
{//检查文件类型
若上传的文件为jpg或gif图片则加水印
if(strstr($wFile[
type
]
"jp"))
{ //若上传图片类型为jpg
pjpeg
jpeg
则用imagecreatefromjpeg读取目标文件
$im = imageCreatefromjpeg($wFile[
tmp_name
]);
$wfilew=imagesx($im);//取得图片的宽
$wfileh=imagesy($im);//取得图片的高 }
else
{//否则若上传图片类型为gif
则用imagecreatefromgif读取目标文件
$im = imageCreatefromgif($wFile[
tmp_name
]);
$wfilew=imagesx($im);//取得图片的宽
$wfileh=imagesy($im);//取得图片的高
}
//设定混合模式
imagealphablending($im
true);
//读取水印文件
$im
= imagecreatefrompng($waterimg);//若水印图片为jpg
则此去可改为$im
= imagecreatefromjpeg($waterimg)//$white = imagecolorallocate($im
);
// imagecolortransparent($im
$white); //设透明色
这两句可不要$waterw=imagesx($im
);//取得水印图片的宽
$waterh=imagesy($im
);//取得水印图片的高
//随机放水印到图片中
$randval = rand(
);//在
之间产生随机数
if($randval==
||$randval==
||$randval==
||$randval==
||$randval==
){//此处还可完善放更多位置
$wimgx=
;$wimgy=
;//放左上角
}else{
$wimgx=$wfilew
$waterw;$wimgy=$wfileh
$waterh;//放右上角
}//拷贝水印到目标文件
imagecopy($im
$im
$wimgx
$wimgy
$waterw
$waterh);
//输出图片
if(strstr($wFile[
type
]
"jp")){ //同上
imagejpeg($im
$wFile[
tmp_name
]);
}else{
imagegif($im
$wFile[
tmp_name
]);
}
imagedestroy($im);
imagedestroy($im
);
copy($wFile[
tmp_name
]
$wFile[
name
]); //上传
}
else echo "图片不符合!!";
}
?>