[卡国17天传说12]ASP会员管理第十二章照片缩图及浮水印

作者: 分类: 问题制作 发布于:2020-06-09 788次浏览 54条评论


第十二章 照片缩图及浮水印
这个章节延续上一章的上传,加上了自动缩图和浮水印的功能。
大部份网站都会约束上传照片的尺寸,但是对于使用者来讲,上传前要自己缩图还是有点麻烦,不是每个人都知道怎幺把图缩小。所以在这个章节我们要让上传的图片自动的缩成特定的尺寸。
ASP并没有图形处理的函式,所以我们要先在网页伺服器上安装ASPJpeg这个组件。ASPJpeg是一个功能很强大的组件,它提供了许多图形处理的方法,包括改变长寛、浮水印、旋转、线条、圆形…等。但在这里我们只要介绍改变宽高及浮水印的功能。你可以在这里取得30天的试用版。

安装过程和ASPUpload一样,序号的部份留空白可以试用30天。
在上一章我们写了一个上传的函式,而缩放跟浮水印的功能其实就是在上传的功能存档后,再把档案抓出来处理一次。
和上传一样,我们直接写一个图片处理的函式方便往后调用。以下是图片处理的程式码。
'ASPJpeg调整图片长宽
Sub ASPJpegResize
Set Jpeg = Server.CreateObject
Jpeg.Open FilePath
if Jpeg.OriginalWidth > NewSize or OriginalHeight > NewSize then'如果长和宽都不超过设定大小 则不处理
if Jpeg.OriginalWidth >= Jpeg.OriginalHeight then'判断长宽哪个比较大 来决定要缩小或放大的比例
PicSize = Jpeg.OriginalWidth
else
PicSize = Jpeg.OriginalHeight
end if
end if
Scale = FormatNumber'取得缩放比
Jpeg.Width = Jpeg.OriginalWidth * Scale'修改图片宽度
Jpeg.Height = Jpeg.OriginalHeight * Scale'修改图片高度
'设定浮水印参数
Jpeg.Canvas.Font.Color = &Hfffffff'水印文字颜色
Jpeg.Canvas.Font.Family = Arial'字体
Jpeg.Canvas.Font.Bold = True'是否加粗
Jpeg.Canvas.Font.Size = 18'字体大小
Jpeg.Canvas.Font.ShadowColor = &H000000'阴影色彩
Jpeg.Canvas.Font.ShadowYOffset = 2'阴影位置
Jpeg.Canvas.Font.ShadowXOffset = 2'阴影位置
Jpeg.Canvas.Brush.Solid = false
Jpeg.Canvas.Font.Quality = 4'输出质量
'水印位置及文字
Jpeg.Canvas.PrintText Jpeg.Width - 50,Jpeg.Height - 20,Watermark
Jpeg.Save FilePath
Set Jpeg = nothing
End Sub
函式内的3个参数分别是
FilePath档案路径
NewSize图片宽或高的最大像素
WaterMark要加上的浮水印
程式的一开始先把图片载入,接着取得图片的宽和高。
接下来判断宽和高,哪个数值较大,把它缩成我们指定的像素,另一个则依照比例缩小。若宽和高都未大于我们指定的像素大小,则维持原来尺寸,不进行处理。
处理完尺寸后,接着设定浮水印的参数,包括字型大小、颜色、阴影….等。
最后将浮水印加在指定的位置后直接存档。
写完函式后,要把它加在上传的函式里,只要上传的动作进行完毕,就可以进行图片处理了,所以我们放置的位置是在这个地方
For Each File IN Upload.Files'存档
File.SaveAs Dir & "/" & MakeId & File.Ext'另存成乱数档案
FileName = File.FileName'回传档案名
FilePath = Dir & "/" & FileName
Call ASPJpegResize'加上浮水印
Next
底下是上传成功的截图。
[卡国17天传说12]ASP会员管理第十二章照片缩图及浮水印
原始图片不管多大,都会自动缩成我们指定的大小100像素,而且在右下角自动加上了浮水印啰~~

<<上一篇: