zblog上传图片自动添加水印的实现方法

简介:
 方法很简单,直接把代码复制到相关文件即可,不过此方法需要aspjpeg组件的支持才行!
具体的方法如下:
一、打开 FUNCTION 文件夹下的 c_system_lib.asp 文件
二、在文件中搜索:UpLoad=True ,再其前面添加以下代码:
If CheckRegExp(LCase(FileName),"jpg|gif|bmp|png") Then
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open BlogPath & "/" & ZC_UPLOAD_DIRECTORY  &  "/"  & FileName  ' 图片所在位置
 
Dim aa
aa=Jpeg.Binary '将原始数据赋给aa
'=========加文字水印=================
Jpeg.Canvas.Font.Color = &Hfffffff '水印文字颜色
Jpeg.Canvas.Font.Family = "Arial" '字体
Jpeg.Canvas.Font.Bold = True '是否加粗
Jpeg.Canvas.Font.Size = 24 '字体大小
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/2-100,Jpeg.OriginalHeight/2+20,"www.5iadmin.com" '水印位置及文字
bb=Jpeg.Binary '将文字水印处理后的值赋给bb,这时,文字水印没有不透明度
 
'============调整文字透明度================
dim MyJpeg
Dim Logo
dim 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.2 '0.3是透明度
MyJpeg.Save BlogPath & "/" & ZC_UPLOAD_DIRECTORY & "/" & FileName  ' 保存文件
set aa=nothing
set bb=nothing
Jpeg.close
MyJpeg.Close
Logo.Close
END IF
因为AspJpeg组件不支持文字的透明效果,这里的思路简单的可以概括为将文字先处理成图片水印,然后与原图融合起来。
 
小王又做了一些修改:
 
If CheckRegExp(LCase(FileName),"jpg|gif|bmp|png") Then
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open BlogPath & "/" & ZC_UPLOAD_DIRECTORY  &  "/"  & FileName  ' 图片所在位置
 
Dim aa
aa=Jpeg.Binary '将原始数据赋给aa
'=========加文字水印=================
Jpeg.Canvas.Font.Color = &H000000 '水印文字颜色
Jpeg.Canvas.Font.Family = "Arial" '字体
Jpeg.Canvas.Font.Size = 22 '字体大小
Jpeg.Canvas.Brush.Solid = True
Jpeg.Canvas.Font.Quality = 4   '输出质量
Jpeg.Canvas.PrintText Jpeg.OriginalWidth-170,Jpeg.OriginalHeight-20,"www.5iadmin.com" '水印位置及文字
bb=Jpeg.Binary '将文字水印处理后的值赋给bb,这时,文字水印没有不透明度
 
'============调整文字透明度================
dim MyJpeg
Dim Logo
dim bb
Set MyJpeg = Server.CreateObject("Persits.Jpeg")
MyJpeg.OpenBinary aa
Set Logo = Server.CreateObject("Persits.Jpeg")
Logo.OpenBinary bb
MyJpeg.DrawImage 0,0, Logo, 1 '0.3是透明度
MyJpeg.Save BlogPath & "/" & ZC_UPLOAD_DIRECTORY & "/" & FileName  ' 保存文件
set aa=nothing
set bb=nothing
Jpeg.close
MyJpeg.Close
Logo.Close
END IF


本文转自 小王 51CTO博客,原文链接:http://blog.51cto.com/xiaowang/1161373,如需转载请自行联系原作者
相关文章
|
安全 Java API
解决 Swagger API 未授权访问漏洞:完善分析与解决方案
Swagger 是一个用于设计、构建、文档化和使用 RESTful 风格的 Web 服务的开源软件框架。它通过提供一个交互式文档页面,让开发者可以更方便地查看和测试 API 接口。然而,在一些情况下,未经授权的访问可能会导致安全漏洞。本文将介绍如何解决 Swagger API 未授权访问漏洞问题。
|
消息中间件 Docker 容器
使用 Docker 安装 activemq
本文是博主学习docker的记录,希望对大家有所帮助。
2190 0
使用 Docker 安装 activemq
|
数据采集 人工智能 安全
5分钟,学会自建海外代理IP池
本文详解如何从0到1搭建实用的海外代理IP池,适合跨境、爬虫、AI数据等业务。摒弃免费IP风险与自建高成本,推荐使用成熟商业服务,结合Python实现IP自动获取、验证与管理,安全高效,新手友好。
阿里云免费企业邮箱申请入口链接(2023新版申请流程)
阿里云免费企业邮箱申请入口链接(2023新版申请流程)阿里云免费企业邮箱没有了吗?免费企业邮箱在哪申请?每个阿里云账号可以申请一个免费企业邮箱。最近有同学反馈企业邮箱申请不了了,阿里云百科查看下,确实原免费版企业邮箱申请链接,打开后,会跳转到付费版企业邮箱页面。阿里云百科特意咨询了客服,得到回复是目前阿里云依旧提供免费版企业邮箱。阿里云百科分享阿里云免费版企业邮箱申请链接:
17294 4
阿里云免费企业邮箱申请入口链接(2023新版申请流程)
|
存储 NoSQL Redis
投行系统的毫秒级榜单响应:如何用Redis ZSET破解同分排序难题?
通过Redis的ZSET数据结构和更新时间戳,解决投行交易系统实时排行榜中同分跳变的问题。具体方案为:将交易量作为整数部分,更新时间戳作为小数部分,确保同分时按最新更新排序,实现实时、高效、无需应用层干预的排行榜功能。一句话总结:通过Redis ZSET加更新时间戳,解决百万交易排行榜实时显示及同分难题。
|
监控 安全 网络安全
代理IP安全问题:在国外使用代理IP是否安全
代理IP安全问题:在国外使用代理IP是否安全
766 3
|
Docker 容器
docker设置国内镜像源
docker设置国内镜像源
44946 5
|
Docker 容器
dockers --cap-add 哪些值可以设置
`--cap-add` 参数可以用于向 Docker 容器添加不同的权限。除了 `NET_ADMIN`,还有一些其他常用的权限值,包括: 1. `SYS_ADMIN`:添加系统管理员权限,允许容器内的进程执行系统级别的管理操作,如挂载文件系统、设置时间、修改主机名等。 2. `SYS_PTRACE`:添加系统追踪权限,允许容器内的进程使用 `ptrace` 系统调用,用于调试和监视其他进程。 3. `SYS_CHROOT`:添加切换根目录权限,允许容器内的进程使用 `chroot` 系统调用,在指定的目录下创建一个新的根文件系统环境。 4. `SYS_MODULE`:添加模块加载/卸载
1813 1
|
消息中间件 SQL 运维
如何设计实时数据平台(技术篇)
本文从技术角度入手,介绍RTDP的技术选型和相关组件,探讨适用不同应用场景的相关模式。