风易博客

风萧萧兮易水寒, 壮士一去兮不复还。

« 黑客攻破Google服务器 通过中国网站传病毒网站备案填写样例 »

pjblog博客插件,给上传的文件打上图片或文字水印

会说话的博客,点我试试:)

最近更新,PJBLOG打水印插件,该插件需要服务器支持ASPJPEG组件。
使用该插件,需要你的images文件夹下面有一个wind.png文件,宽度和高度为150*66px,可以根据需要更改相关代码为你所需要的。

废话少说,看代码。当然你也可以把附件直接覆盖到你的PJBLOG中。前提是你的版本是pjblog 2.6并且该文件没有被更改过。
点击下载此文件
用记事本或者其它文本编辑工具也行打开根目录 attachment.asp文件:

找到 55行,修改其中代码如下:

(其中红色部分为修改代码)

Else
 F_File.SaveAs Server.MapPath("attachments/"&D_Name&"/"&F_Name)
 If UCase(F_Type) = "JPG" or UCase(F_Type) = "JPEG" or UCase(F_Type) = "PNG" or UCase(F_Type) = "BMP" or UCase(F_Type) = "GIF" Then
  If sy <> "" And IsNumeric(sy) Then
   Call CreateView("attachments/"&D_Name&"/"&F_Name,sy)
  End If
 End If
 response.write "<script>addUploadItem('"&F_Type&"','attachments/"&D_Name&"/"&F_Name&"',"&Request.QueryString("MSave")&")</script>"
 Response.Write("<div style=""padding:6px""><a href='attachment.asp'>文件上传成功,请返回继续上传</a></div>")
End IF

再找到如下代码更改为:(其中红色部分为修改代码)
Response.Write("<form name=""frm"" enctype=""multipart/form-data"" method=""post"" action=""attachment.asp?action=upload&MSave=0""><input name=""File"" type=""File"" size=""28"" style=""font-size:12px;border-width:1px"">&nbsp;<input type=""Submit"" name=""Submit"" value=""确定上传"" class=""userbutton""><input type=""checkbox"" name=""MemberDown"" value=""1"" id=""Md"" onclick=""MSave(this)"" title=""只对UBB编辑有效,媒体文件包括图片无效""/><label for=""Md"" title=""只对UBB编辑有效,媒体文件包括图片无效"">此文件只允许会员下载 </label> <select name=""sy""><option selected>无水印</option><option value=""1"">文字水印</option><option value=""2"">图片水印</option></select></form>")
End IF
Else
Response.Write("<div style=""padding:6px;color:#f00"">对不起,你没有权限上传附件!</div>")
End If

'######################################################################
' 函数名:CreateView
' 作用:图片打水印,可以选择文字或图片水印
' 属性:
'      imgName:图片名称;
'      mode: 1为文字水印,2为图片水印;
' Last Modify : 10/26/2006
' Created by 清风 QQ: 110125707 MSN:
anwellsz@msn.com blog.wind88.net
'######################################################################
Sub CreateView(imgName,mode)
 '默认为文字水印
 If mode = "" or Not IsNumeric(mode) Then mode = 1
 On Error Resume Next
 Dim Jpeg
 Dim Logobox,LogoPath
 Set Jpeg = Server.CreateObject("Persits.Jpeg")
 If -2147221005=Err then
  Response.write "没有这个组件,请安装!" '检查是否安装AspJpeg组件
  Response.End()
 End If
 Dim x,y
 If mode = 2 Then '图片水印
  LogoPath = Server.MapPath("/images/wind.png")  '//加入图片所在路径及文件名
  Set Logobox = Server.CreateObject("Persits.Jpeg")
  Logobox.Open LogoPath
  '//重新设置图片的大小
  Logobox.Width = 150  '// 加入图片的原宽度
  Logobox.Height = 66 '// 加入图片的原高度
  '*添加水印图片*
  Jpeg.Open Trim(Server.MapPath(imgName))
  If Jpeg.OriginalWidth<Cint(Logobox.Width) or Jpeg.Originalheight<Cint(Logobox.Height) Then
    imgName=""
    Set Jpeg = Nothing
    Exit Sub
  Else
   Jpeg.Canvas.Pen.Color  = &HFFFFFF '// 边框的颜色
   Jpeg.Canvas.Pen.Width  = 0    '// 边框的粗细
   Jpeg.Canvas.Brush.Solid = False   '// 图片边框内是否填充颜色
   Jpeg.DrawImage Jpeg.OriginalWidth-160, Jpeg.OriginalHeight-70, Logobox, 0.8, &HFFFFFF '// 加入图片的位置价坐标(添加水印图片)
   Jpeg.Canvas.Bar 0, 0, Jpeg.Width, Jpeg.Height '// 图片边框线的位置坐标
   Jpeg.Width = Jpeg.Width
   Jpeg.height = Jpeg.height
   Jpeg.Sharpen 1, 120
   Jpeg.Save Server.MapPath(imgName)  '// 生成预览文件
   Logobox.close : Set Logobox=Nothing
   Jpeg.close : Set Jpeg = Nothing
  End If
 Else '文字水印
  Jpeg.Open Server.MapPath(imgName) '打开图片
  If err.number then
   Response.write"打开图片失败,请检查路径!"
   Response.End()
  End if
  Dim aa,MyJpeg,Logo,bb
  aa=Jpeg.Binary '将原始数据赋给aa
  '=========加文字水印=================
  Jpeg.Canvas.Font.Color = &Hfffffff '水印文字颜色
  Jpeg.Canvas.Font.Family = Arial '字体
  Jpeg.Canvas.Font.Bold = True '是否加粗
  Jpeg.Canvas.Font.Size = 28 '字体大小
  Jpeg.Canvas.Font.ShadowColor = &H000000 '阴影色彩
  Jpeg.Canvas.Font.ShadowYOffset = 1
  Jpeg.Canvas.Font.ShadowXOffset = 1
  Jpeg.Canvas.Brush.Solid = True
  Jpeg.Canvas.Font.Quality = 4 ' '输出质量
  Jpeg.Canvas.PrintText Jpeg.OriginalWidth-195,Jpeg.OriginalHeight-30,"
www.wind88.net" '水印位置及文字
  bb=Jpeg.Binary '将文字水印处理后的值赋给bb,这时,文字水印没有不透明度
  '============调整文字透明度================
  Set MyJpeg = Server.CreateObject("Persits.Jpeg")
  MyJpeg.OpenBinary aa
  Set Logo = Server.CreateObject("Persits.Jpeg")
  Logo.OpenBinary bb
  MyJpeg.DrawImage 0,0, Logo, 0.6 '0.6是透明度
  MyJpeg.Save Server.MapPath(imgName)
  set aa=nothing
  set bb=nothing
  Jpeg.close
  MyJpeg.Close
  Logo.Close
 End If
End Sub
%>

  • quote 1.leleou
  • hoho 这个世界真是太小了,在PJBLOG官方看到了你, 偶也是大连海事大学的 你不在海大了么?有空多联系,偶的BLOG:www.leleou.com,你的连接已经添加,偶的QQ:43926016,
  • 2006-11-2 6:36:58 回复该留言
  • quote 3.瑜杰
  • 兄弟,我的图片水印好想显不出来!文字水印是正常的!有没有些提示,我都试了好多遍了!
  • 2007-1-20 15:59:54 回复该留言
  • quote 5.zyglovesss
  • 我也发生了水印图片无法显示的问题 后来检查了下代码 小问题现在解决了 把方法放出来
    修改该过后的代码:
    If mode = 2 Then '图片水印
    LogoPath = Server.MapPath("images/imglogo.jpg") '//加入图片所在路径及文件名
    Set Logobox = Server.CreateObject("Persits.Jpeg")

    LogoPath = Server.MapPath("images/imglogo.jpg") '//加入图片所在路径及文件名
    这个路径原本前面是有个“/”的不知道大家注意没有如果有个/就是从上一级目录下的 images 中调用图片了 所以上一级是没有这个拖的所以没有调用成功 把“/”取消即刻了 希望能帮到一些人
  • 2007-4-27 13:06:39 回复该留言
  • quote 7.雨静清风
  • 兄弟,我的图片水印显现没有问题!

    但就是在UBB找不到路径了。不显现!帮帮忙!

    附件上传、图片水印、文字水印是正常的!QQ:120882464

    BLOG:raykyin . qyun . net
  • 2008-7-27 12:42:42 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense  theme by BokeZhuti

Copyright © 2005 - 2008 风易博客 1982Y.Net.Cn All Rights Reserved.  由Wind88.Net提供优质主机空间
沪ICP备05006417号