这种图片加文字水印如何实现啊?

ChinaXtHuLang 2009-05-26 07:12:39
这是2边都加上了水印功能的。
[img=http://www.ewebeditor.net/ewebeditor/uploadfile/20090526/20090526191003621.jpg]http://www.ewebeditor.net/ewebeditor/uploadfile/20090526/20090526191003621.jpg[/img]
原地址:http://fj126.net/photo/html/151/
不是AD
...全文
345 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaXtHuLang 2009-05-28
  • 打赏
  • 举报
回复
'############################################# 图片函数 #############################################
'# 输出图片
'路径,宽度,高度,水印
Function IsJpeg(ByVal Columns,ByVal Path,ByVal Ext,ByVal Values)
on error resume Next
Dim newpath,oldpath,savepath,pmake,pwidth,pheight:pheight=0
'默认宽度按类型区分
If Values="preview" Then
Dim Fpre:Fpre=Split(preimg,"|")
select case Columns
case "blog"
pwidth=IsID(Fpre(0),0)
case "art"
pwidth=IsID(Fpre(1),0)
case "photo"
pwidth=IsID(Fpre(2),0)
case "down"
pwidth=IsID(Fpre(3),0)
end Select
If pwidth=0 Then pwidth=500

Else
'自定义宽高度
If InStr(Values,"-")>0 Then
Dim Fdiy:Fdiy=split(Values,"-")
pwidth=IsID(Fdiy(0),0)
pheight=IsID(Fdiy(1),0)
Else
pwidth=IsID(Values,0)
End If

End If
'设定生成的目录结构
Dim dirpath
If pheight=0 Then
If pwidth=0 Then
dirpath=Chr(47)
else
dirpath=Chr(47)&pwidth&Chr(47)
End if
Else
dirpath=Chr(47)&pwidth&Chr(45)&pheight&Chr(47)
End If
'原始图片路径
oldpath = SM(uppath&Columns&Chr(47)&path)
newpath = SM(tempimg&Columns&dirpath&path)
savepath = tempimg&Columns&dirpath
'创建文件夹
Call createfolder(savepath)
Dim Fso
Set Fso=Server.Createobject (strobjectfso)
If Fso.Fileexists(newpath)=false Then '当文件不存在时生成图片到临时文件夹
'验证一下,非本地禁止生成
if instr(Request.Servervariables("Http_referer"),httpurl)=0 Then Server.Transfer "Template/no_annex.gif":Exit Function
Dim Jpeg
Set Jpeg = Server.CreateObject(strobjectjpeg) '调用Jpeg组件输出图片文件
'判断类型开始
select case ext
'GIF图片输出
case "gif"
Dim Gif
Set Gif = Jpeg.Gif
Gif.Open (oldpath) '打开文件
If pwidth > 0 Then '宽度不为空
If pheight > 0 then '高度不为空
Gif.Resize pwidth,pheight '按指定大小
Else '按宽度比例
If Gif.Width>pwidth then
Gif.Resize pwidth
End if
End If
End If
Gif.Save newpath
Set Gif=Nothing
case Else
Jpeg.Open(oldpath) '打开文件
If pwidth > 0 Then '宽度不为空开始处理
If pheight > 0 then '高度不为空开始切割
Dim lheight:lheight=Jpeg.OriginalHeight * pwidth / Jpeg.OriginalWidth'取图片高度
If lheight<pheight Then '图片高度小于预定值按预定值处理
Jpeg.Height = pheight
Jpeg.Width = Jpeg.OriginalWidth * Jpeg.Height / Jpeg.OriginalHeight
Else
Jpeg.width = pwidth '大于预定值则按宽度开始切割
Jpeg.Height = Jpeg.OriginalHeight * Jpeg.width / Jpeg.Originalwidth
End if
Jpeg.Crop 0, 0,pwidth,pheight '割了割了,嘿嘿!
Else '高度为空且宽度大于预定值则开始比例缩放,否则省略过
If Jpeg.Width>pwidth Then
Jpeg.Width = pwidth
Jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth
End If
End If
End If

'获取水印预定值设置,按类型区分
Dim Fdat:Fdat=Split(makeWidth,"|")
select case Columns
case "blog"
pmake=IsID(Fdat(0),0)
case "art"
pmake=IsID(Fdat(1),0)
case "photo"
pmake=IsID(Fdat(2),0)
case "down"
pmake=IsID(Fdat(3),0)
end Select

'大于预定值
If pmake>0 And Jpeg.Width => pmake Then
'先打图片水印
Dim sys
Set sys = Server.CreateObject(strobjectjpeg)
sys.Open(SM("Template/mark_"&Columns&".png"))'水印图片
Jpeg.DrawImage 0,Jpeg.height-sys.height,sys,0.3,&Hf00000
Set sys=Nothing
'打文字水印
Jpeg.Canvas.Font.Color = &HFFFFFF
Jpeg.Canvas.Font.Size = 13
Jpeg.Canvas.Font.Family = "Tahoma"
'文字水印内容,可以只打一边
If InStr(printtext,"|")>0 Then
Jpeg.Canvas.Print Jpeg.OriginalWidth-100,Jpeg.OriginalHeight-16,CStr(Split(printtext,"|")(1))
Jpeg.Canvas.Print 5,Jpeg.OriginalHeight-16,CStr(Split(printtext,"|")(0))
Else
Jpeg.Canvas.Print 5,Jpeg.OriginalHeight-16,printtext
End If
End If
'图片质量,最高100
Jpeg.Quality = 90
Jpeg.Save (newpath)
end Select
Set Jpeg=Nothing
End If
Set Fso=Nothing
go savepath&path
End Function


用了下好像是用切割的。但是我看不懂。
ChinaXtHuLang 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chinmo 的回复:]
文字水印也简单,加2次水印
[/Quote]
不想加2次。加一次可以不?
  • 打赏
  • 举报
回复
文字水印也简单,加2次水印
ChinaXtHuLang 2009-05-27
  • 打赏
  • 举报
回复
不是。那是文字水印。
  • 打赏
  • 举报
回复
最简单的就是图片水印
ChinaXtHuLang 2009-05-27
  • 打赏
  • 举报
回复
自己顶下。等待熟悉ASPJPEG的同志
  • 打赏
  • 举报
回复
因为他有一个半透明的背景色
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ChinaXtHuLang 的回复:]
引用 6 楼 chinmo 的回复:
文字水印也简单,加2次水印

不想加2次。加一次可以不?
[/Quote]
不可以
你了解就知道了
我感觉他那个就是图片水印
ChinaXtHuLang 2009-05-27
  • 打赏
  • 举报
回复
继续等待高手的出现。
ChinaXtHuLang 2009-05-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hookee 的回复:]
可以用GFLAx 组件 http://www.xnview.com/en/gfl.html
[/Quote]
我是文盲。英语不好。。而且我没有看到关于ASPJPEG的文字。。
你发的是AD。。楼下的人。不要看了。就是骗IP的。
hookee 2009-05-26
  • 打赏
  • 举报
回复
可以用GFLAx 组件 http://www.xnview.com/en/gfl.html

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧