大家知道,表单在“multipart/form-data”编码下 上传图片时,我们是不能通过隐藏 input 项来传递参数的,但我们可以利用 form 的 action 的 querystring 来传递参数 。
<script language="javascript">
function check(){
document.form1.action="upload.asp?id="+document.getElementById("wz").selectedIndex
}
</script>
<form name="form1" method="post" action="" enctype="multipart/form-data" onSubmit="check();">
<input type="file" name="src" size=30 maxlength=100 value="浏览">
<select name="wz" id="wz">
<option value="0">右下角</option>
<option value="1">左下角</option>
<option value="2">左上角</option>
<option value="3">右上角</option>
<option value="4">中 间</option>
<option value="5">随 机</option>
<option value="6">无水印</option>
</select>
<input type="submit" value="上传" name="B1" IsShowProcessBar="True">
</form>
<%……
上传图片语句/函数
……
''=============为上传图片打上水印start(需
aspjpeg组件)=============
id=request.querystring("id")
if id<>6 then '无水印
dim photo,logo,photopath,logopath
Set Photo = Server.CreateObject("Persits.Jpeg") '建立原图对象
PhotoPath = Server.MapPath(formPath&newname)
Photo.Open PhotoPath
Set Logo = Server.CreateObject("Persits.Jpeg") '建立图标对象
LogoPath = Server.MapPath("imglogo.gif")
Logo.Open LogoPath
Logo.Width = 150
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth
Photo.Canvas.Pen.Color = &H000000 '边框的颜色
Photo.Canvas.Pen.Width = 1 '边框的粗细
Photo.Canvas.Brush.Solid = False '图片边框内是否填充颜色
''加入图片的位置坐标/参数顺序为:水平坐标,垂直坐标,水印图片地址,水银透明度,抽取颜色
if id=0 then Photo.DrawImage photo.width-152,photo.height-52,Logo,0.8,&HFFFFFF '右下
if id=1 then Photo.DrawImage 2,photo.height-52,Logo,0.8,&HFFFFFF '左下
if id=2 then Photo.DrawImage 2,2,Logo,0.8,&HFFFFFF '左上
if id=3 then Photo.DrawImage photo.width-152,2,Logo,0.8,&HFFFFFF '右上
if id=4 then Photo.DrawImage photo.width/2-75,photo.height/2-25,Logo,0.8,&HFFFFFF '居中
if id=5 then
Randomize
w=int(((photo.width-152)-2+1)*Rnd+2)
h=int(((photo.height-52)-2+1)*Rnd+2)
Photo.DrawImage w,h,Logo,0.8,&HFFFFFF '随机位置打水印
end if
photo.Save Server.MapPath(formPath&newname)
Set logo = Nothing
Set photo = Nothing
end if
%>
''=============为上传图片打上水印 end=============
通过这样的处理后,我们就可以随心所欲的把自己网站的站标/水印打在希望的位置上了,比如上述程序即实现了在图片的 左下角、右下角、左上角、右上角、中间、随机位置打水印的功能。