Persits AspJpeg 1.8+ 轻松实现透明文字去锯齿水印
来源:asp之家 发布时间:2009-03-20 14:03:00
从AspJpeg1.8 版本开始,AspJpeg 提供了比 PrintText 更为灵活的文本绘图方法PrintTextEx,PrintTextEx 使用FreeType?开源程序库,可以在任何背景上呈现高品质的反锯齿文本。
这是一个ASP版本的利用PrintTextEx方法产生文字透明水印简单示例程序:
<%
Dim objJpeg
Dim strText
Set objJpeg = Server.CreateObject("Persits.Jpeg")
objJpeg.Open Server.MapPath("t.jpg")
strText = "Copyright © 2008 Abo BloG"
objJpeg.Canvas.Font.Size = 30
objJpeg.Canvas.Font.Color = &HFF0000 '十六进制颜色值
objJpeg.Canvas.Font.Opacity = 0.7 '不透明度,1为不透明
objJpeg.Canvas.PrintTextEx strText, objJpeg.Width/2, objJpeg.Height-20, objJpeg.WindowsDirectory & "\Fonts\Arial.ttf"
objJpeg.Save Server.MapPath("tt.jpg")
Set objJpeg = Nothing
%>
<%
Dim objJpeg
Dim strText
Set objJpeg = Server.CreateObject("Persits.Jpeg")
objJpeg.Open Server.MapPath("t.jpg")
strText = "Copyright © 2008 Abo BloG"
objJpeg.Canvas.Font.Size = 30
objJpeg.Canvas.Font.Color = &HFF0000 '十六进制颜色值
objJpeg.Canvas.Font.Opacity = 0.7 '不透明度,1为不透明
objJpeg.Canvas.PrintTextEx strText, objJpeg.Width/2, objJpeg.Height-20, objJpeg.WindowsDirectory & "\Fonts\Arial.ttf"
objJpeg.Save Server.MapPath("tt.jpg")
Set objJpeg = Nothing
%>
rintTextEx 方法参考:
Function PrintTextEx(Text As String, X As Long, Y As Long, FontPath As String) As Long
Text - 要打印的文字字符串(Unicode格式),如果含有CR/LR字符则多行显示。
X, Y - 打印位置,XY轴坐标。
FontPath - 指定字体文件的物理路径。只要知道字体路径即可,并不需要系统注册。
返回值:返回文本宽度,如果字符串分割为多行,则返回宽度最长的。
以下字体属性影响PrintTextEx:
Font.Color - 指定当前文字颜色,以一个十六进制值来表示,例如:&HFF0000FF 蓝色
Font.Rotation - 旋转角度
Font.Size - 指定文字大小,单位像素(px)
Font.Spacing - 行距
Font.Width - 指定文本宽度,超出自动换行。
Font.Align - 指定文本对齐方式。0-左(默认),1-右,2-居中,3-两端对齐,当值为非0时,必须指定Font.Width值
Font.Opacity - 指定文本的不透明度,有效值范围[0-1],0完全透明,1完全不透明
图片:
If Img.TransparencyColorExists Then
Big.Canvas.DrawImage 10, 10, Img, 1, Img.TransparencyColor,10
Else
Big.Canvas.DrawImage 10, 10, Img
End If
如果有透明存在,那个是抽取的透明色,
第一,二个参数是X,Y offsets,第三个参数是水印图片,第四个参数是水印透明度,第5个参数是抽取透明层的颜色,第六个参数是抽取颜色的误差范围,有时候透明有杂点,可以通过这个参数调整.其中第4个到第六个参数是可选参数
在版本1.6开始被支持,现在最新好象是1.9版本
猜你喜欢
- 本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义,
- 完整的示例代码如下: 代码如下:<%@LANGUAGE="JAVASCRIPT" CODEPAGE="6
- 我准备在ASP中连接MYSQL了,请问如何做?首先要正确安装MYSQLX,装好之后,可调用以下程序即可正常访问MYSQL:<%@&nb
- 本例详细介绍了如何在wiondws XP下安装与配置MySQL5.0.37 ,图文并茂,相信对初学mysql的朋友有所帮助。1 点击MySQ
- 场景一:A网站全站均为UTF-8编码,B网站全站为GB2312编码。A网站提供一段JS代码供B网站调用,该代码会动态生成一个FORM表单,以
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 14 - Periodical and Intro
- 1.在查询分析器理启动或停止SQL Agent服务启动:use mastergoxp_cmdshell 'net start SQL
- 又是一年春来到,看各大网站的新年Logo也成为了我们必不可少的新年餐点,为此,我们特别整理了部分网站的新年Logo秀,如果你看到了更加有意思
- 阅读上一篇:FrontPage2002简明教程七:HTML在FrontPage中的应用 FrontPage 2002比起以前版本的FronP
- 好多次在不同场合,都听到有同行提到“做产品比做设计更有前途”,或者“别做设计了,做产品吧”类似的观点。我不认为它们之间有什么可比性,因为这么
- ASP正则表达式,RegExp对象提供简单的正则表达式支持功能。RegExp对象的用法: Function RegExpTest(
- creatdoc.asp<!DOCTYPE HTML PUBLIC "-//W3C/DTD&n
- BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。EOF 指示当前记录位置位于 Recordset 对象的最后一个记录
- 在 Internet 连接无处不在的今天,我们忽然有了另外一个需求,离线 Web。Gmail, Google Reader, Zoho 这些
- 1.5 学习ASP.net 的过程中如何求助--加入 ASPNG 讨论列表 Charles Carroll 作为不断壮大的 ASP.NET
- 最常见的XML数据类型有:Element, Attribute,Comment, Text. &nbs
- 本文详细介绍了asp中如何使用sql语句删除数据库中的记录,初学asp者来看看!1,首先要明确删除哪条记录无非还就是SQL语句了,比如对应到
- 本文中,abigale代表查询字符串,ada代表数据表名,alice代表字段名。技巧一:问题类型:ACCESS数据库字段中含有日文片假名或其
- 首先是最常规的方法:<p id="para" title="cssrain demo!" on
- 你和用户之间的网站堆栈(简化版)在TXJS大会的最后一天,一个开发者问我:面向对象的CSS没有给你留下一大堆基于表现的class名?网络堆栈