威凡网全力打造:网页编程、软件开发编程、平面设计、服务器端开发、操作系统等在线学习平台!学编程,上威凡网!
ASP教程>> ASP基础 应用技巧 数据库相关 ASP类 存储过程 FSO专栏 ASP其他
当前位置:首页 > ASP教程 > ASP类
上一节 下一节
 ASPJPEG综合操作的CLASS类
<% 
'aspjpeg综合操作class 
class aspjpeg 
dim aspjpeg_obj,obj 
private img_mathpath_from,img_mathpath_to,img_reduce_size,coverif 
private img_frame_size,img_frame_color,img_frame_solid,img_frame_width,img_frame_height 
private img_font_content,img_font_family,img_font_color,img_font_quality,img_font_size,img_font_bold,img_font_x,img_font_y 
private img_picin_path,img_picin_x,img_picin_y 
'--------------取原文件路径 
public property let mathpathfrom(strtype) 
img_mathpath_from=strtype 
end property 

'--------------取文件保存路径 
public property let mathpathto(strtype) 
img_mathpath_to=strtype 
end property 

'--------------保存文件时是否覆盖已有文件 
public property let covepro(lngsize) 
if lngsize=0 or lngsize=1 or lngsize=true or lngsize=false then 
coverif=lngsize 
end if 
end property 

'---------------取缩略图/放大图 缩略值 
public property let reducesize(lngsize) 
if isnumeric(lngsize) then 
img_reduce_size=lngsize 
end if 
end property 

'---------------取描边属性 
'边框粗细 
public property let framesize(lngsize) 
if isnumeric(lngsize) then 
img_frame_size=clng(lngsize) 
end if 
end property 
'边框宽度 
public property let framewidth(lngsize) 
if isnumeric(lngsize) then 
img_frame_width=clng(lngsize) 
end if 
end property 
'边框高度 
public property let frameheight(lngsize) 
if isnumeric(lngsize) then 
img_frame_height=clng(lngsize) 
end if 
end property 
'边框颜色 
public property let framecolor(strtype) 
if strtype<>"" then 
img_frame_color=strtype 
end if 
end property 
'边框是否加粗 
public property let framesolid(lngsize) 
if lngsize=1 or lngsize=0 or lngsize=true or lngsize=false then 
img_frame_solid=lngsize 
end if 
end property 

'---------------取插入文字属性 
'插入的文字 
public property let content(strtype) 
if strtype<>"" then 
img_font_content=strtype 
end if 
end property 
'文字字体 
public property let fontfamily(strtype) 
if strtype<>"" then 
img_font_family=strtype 
end if 
end property 
'文字颜色 
public property let fontcolor(strtype) 
if strtype<>"" then 
img_font_color=strtype 
end if 
end property 
'文字品质 
public property let fontquality(lngsize) 
if isnumeric(lngsize) then 
img_font_quality=clng(lngsize) 
end if 
end property 
'文字大小 
public property let fontsize(lngsize) 
if isnumeric(lngsize) then 
img_font_size=clng(lngsize) 
end if 
end property 
'文字是否加粗 
public property let fontbold(lngsize) 
if lngsize=1 or lngsize=0 or lngsize=true or lngsize=false then 
img_font_bold=lngsize 
end if 
end property 
'输入文字的x坐标 
public property let fontx(lngsize) 
if isnumeric(lngsize) then 
img_font_x=clng(lngsize) 
end if 
end property 
'输入文字的y坐标 
public property let fonty(lngsize) 
if isnumeric(lngsize) then 
img_font_y=clng(lngsize) 
end if 
end property 

'---------------取插入图片属性 
'插入图片的路径 
public property let picinpath(strtype) 
img_picin_path=strtype 
end property 
'图片插入的x坐标 
public property let picinx(lngsize) 
if isnumeric(lngsize) then 
img_picin_x=clng(lngsize) 
end if 
end property 
'图片插入的y坐标 
public property let piciny(lngsize) 
if isnumeric(lngsize) then 
img_picin_y=clng(lngsize) 
end if 
end property 


private sub class_initialize() 
set aspjpeg_obj=createobject("persits.jpeg") 
img_mathpath_from="" 
img_mathpath_to="" 
img_reduce_size=150 
img_frame_size=1 
'img_frame_width=0 
'img_frame_height=0 
'img_frame_color="&h000000" 
'img_frame_bold=false 
img_font_content="goldenleaf" 
'img_font_family="arial" 
'img_font_color="&h000000" 
img_font_quality=3 
img_font_size=14 
'img_font_bold=false 
img_font_x=10 
img_font_y=5 
'img_picin_x=0 
'img_picin_y=0 
coverif=1 

end sub 
private sub class_terminate() 
err.clear 
set aspjpeg_obj=nothing 
end sub 
'判断文件是否存在 
private function fileis(path) 
set fsos=server.createobject("scripting.filesystemobject") 
fileis=fsos.fileexists(path) 
set fsos=nothing 
end function 

'判断目录是否存在 
private function folderis(path) 
set fsos=server.createobject("scripting.filesystemobject") 
folderis=fsos.folderexists(path) 
set fsos=nothing 
end function 
'******************************************* 
'函数作用:取得当前文件的上一级路径 
'******************************************* 
private function updir(byval d) 
if len(d) = 0 then 
updir="" 
else 
updir=left(d,instrrev(d,"\")-1) 
end if 
end function 

private function errors(errors_id) 
select case errors_id 
case "0" 
errors="指定文件不存在" 
case 1 
errors="指定目录不存在" 
case 2 
errors="已存在相同名称文件" 
case 3 
errors="参数溢出" 
end select 
end function 


'取图片宽度 
public function imginfo_width(img_mathpath) 
if not(fileis(img_mathpath)) then 
'exit function 
imginfo_width=errors(0) 
else 
aspjpeg_obj.open img_mathpath 
imginfo_width=aspjpeg_obj.width 
end if 
end function 
'取图片高度 
public function imginfo_height(img_mathpath) 
if not(fileis(img_mathpath)) then 
'exit function 
imginfo_height=errors(0) 
else 
aspjpeg_obj.open img_mathpath 
imginfo_height=aspjpeg_obj.height 
end if 
end function 
'生成缩略图/放大图 
public function img_reduce() 
if not(fileis(img_mathpath_from)) then 
img_reduce=errors(0) 
exit function 
end if 
if not(folderis(updir(img_mathpath_to))) then 
img_reduce=errors(1) 
exit function 
end if 
if coverif=0 or coverif=false then 
if fileis(img_mathpath_to) then 
img_reduce=errors(2) 
exit function 
end if 
end if 
aspjpeg_obj.open img_mathpath_from 
aspjpeg_obj.preserveaspectratio = true 
if aspjpeg_obj.originalwidth>aspjpeg_obj.originalheight then 
aspjpeg_obj.width=img_reduce_size 
else 
aspjpeg_obj.height=img_reduce_size 
end if 
if aspjpeg_obj.originalwidth>img_reduce_size or aspjpeg_obj.originalheight>img_reduce_size then 
if aspjpeg_obj.width<img_reduce_size or aspjpeg_obj.height<img_reduce_size then 
set aspjpeg_obj_new=createobject("persits.jpeg") 
aspjpeg_obj_new.new img_reduce_size,img_reduce_size,&hffffff 
aspjpeg_obj_new.drawimage (150-aspjpeg_obj.width)/2,(150-aspjpeg_obj.height)/2,aspjpeg_obj 
if img_frame_size>0 then 
call img_pen(aspjpeg_obj_new) 
end if 
if img_font_content<>"" then 
img_font_x=aspjpeg_obj_new.width/2 
img_font_y=aspjpeg_obj_new.height-15 
call img_font(aspjpeg_obj_new) 
end if 
aspjpeg_obj_new.sharpen 1, 130 
aspjpeg_obj_new.save img_mathpath_to 
set aspjpeg_obj_new=nothing 
else 
if img_frame_size>0 then 
call img_pen(aspjpeg_obj) 
end if 
if img_font_content<>"" then 
img_font_x=aspjpeg_obj.width/2 
img_font_y=aspjpeg_obj.height-15 
call img_font(aspjpeg_obj) 
end if 
aspjpeg_obj.sharpen 1, 130 
aspjpeg_obj.save img_mathpath_to 
end if 
else 
if img_frame_size>0 then 
call img_pen(aspjpeg_obj) 
end if 
if img_font_content<>"" then 
img_font_x=aspjpeg_obj.width/2 
img_font_y=aspjpeg_obj.height-15 
call img_font(aspjpeg_obj) 
end if 
aspjpeg_obj.sharpen 1, 130 
aspjpeg_obj.save img_mathpath_to 
end if 
end function 
'生成水印 
public function img_watermark() 
if not(fileis(img_mathpath_from)) then 
img_watermark=errors(0) 
exit function 
end if 
if img_mathpath_to="" then 
img_mathpath_to=img_mathpath_from 
elseif not(folderis(updir(img_mathpath_to))) then 
img_watermark=errors(1) 
exit function 
end if 
if coverif=0 or coverif=false then 
if img_mathpath_to<>img_mathpath_from and fileis(img_mathpath_to) then 
img_watermark=errors(2) 
exit function 
end if 
end if 
aspjpeg_obj.open img_mathpath_from 
if img_picin_path<>"" then 
if not(fileis(img_picin_path)) then 
img_watermark=errors(0) 
exit function 
end if 
set aspjpeg_obj_new=createobject("persits.jpeg") 
aspjpeg_obj_new.open img_picin_path 
aspjpeg_obj.preserveaspectratio = true 
aspjpeg_obj_new.preserveaspectratio = true 
if aspjpeg_obj.originalwidth<img_reduce_size or aspjpeg_obj.originalheight<img_reduce_size then 
img_watermark=errors(3) 
exit function 
end if 
if aspjpeg_obj_new.originalwidth>aspjpeg_obj_new.originalheight then 
aspjpeg_obj_new.width=img_reduce_size 
else 
aspjpeg_obj_new.height=img_reduce_size 
end if 
if img_picin_x="" then img_picin_x=aspjpeg_obj.width-aspjpeg_obj_new.width 
if img_picin_y="" then img_picin_y=aspjpeg_obj.height-aspjpeg_obj_new.height 
aspjpeg_obj.drawimage img_picin_x,img_picin_y,aspjpeg_obj_new 
set aspjpeg_obj_new=nothing 
end if 
if img_frame_size>0 then 
call img_pen(aspjpeg_obj) 
end if 
if img_font_content<>"" then 
call img_font(aspjpeg_obj) 
end if 
'aspjpeg_obj.sharpen 1, 130 
aspjpeg_obj.save img_mathpath_to 
end function 
'生成框架 
private function img_pen(obj) 
if img_frame_width=0 then img_frame_width=obj.width 
if img_frame_height=0 then img_frame_height=obj.height 
obj.canvas.pen.color = img_frame_color 
obj.canvas.pen.width = img_frame_size 
obj.canvas.brush.solid = img_frame_solid 
obj.canvas.bar 1,1,img_frame_width,img_frame_height 
end function 
'生成水印字 
private function img_font(obj) 
obj.canvas.font.color = img_font_color 
obj.canvas.font.family = img_font_family 
obj.canvas.font.quality=img_font_quality 
obj.canvas.font.size=img_font_size 
obj.canvas.font.bold = img_font_bold 
obj.canvas.print img_font_x,img_font_y,img_font_content 
end function 
end class 
%> 
这个类可以公开调用 
1. imginfo_height 取图片高度 
2. imginfo_width 取图片宽度 
调用方法: 
复制代码 代码如下:

dim newobj,pic_h,pic_w  
set newobj=new aspjpeg  
pic_h=newobj.imginfo_height("f:/test.jpg")  
pic_w=newobj.imginfo_width("f:/test.jpg")  
set newobj=nothing  
response.write "this picture's height is "&pic_h  
response.write "this picture's width is "&pic_w  
response.end  

3. img_reduce 对指定图片缩小或放大并保存(可选择是否加水印,是否加框架) 
必须定义声明 mathpathfrom,mathpathto 
默认为缩放至150x150 图案 如按比例缩放后图案小于该尺寸,则补充空白图片 
默认文件自动覆盖 
实例: 
复制代码 代码如下:

dim newobj,newcommand  
set newobj=new aspjpeg  
newobj.mathpathfrom="f:/test.jpg"  
newobj.mathpathto="f:/reduce.jpg"  
newcommand=newobj.img_reduce  
set newobj=nothing  
if newcommand<>"" then  
response.write "success"  
else  
'图片操作过程中出现错误  
response.write "failed"  
end if  

4. img_watermark 给指定图片添加水印 
水印可以为图片 文字 或 2者结合 
申明:本教程内容由威凡网编辑整理并提供IT程序员分享学习,如文中有侵权行为,请与站长联系(QQ:254677821)!
上一节 下一节
相关教程  
其他教程  
ASP基础
应用技巧
数据库相关
ASP类
存储过程
FSO专栏
ASP其他

违法和不良信息举报中心】邮箱:254677821@qq.com
Copyright©威凡网 版权所有 苏ICP备2023020142号
站长QQ:254677821