二
读取和改变图象文件大小
读取图片?直接使用HTML不就可以了?当然可以我们这里只是提供一种选择和方法来实现这一功能具体这一功能的使用我们可能需要在实践中更多的学习先来看程序源代码
<% import all relevant namespaces %>
<%@ import namespace=System %>
<%@ import namespace=SystemDrawing %>
<%@ import namespace=SystemDrawingImaging %>
<%@ import namespace=SystemIO %>
<script runat=server>
Sub sendFile()
dim g as SystemDrawingImage = SystemDrawingImageFromFile(servermappath(request(src)))
dim thisFormat=grawformat
dim imgOutput as New Bitmap(g cint(request(width)) cint(request(height)))
if thisformatequals(systemdrawingimagingimageformatGif) then
ntenttype=image/gif
else
ntenttype=image/jpeg
end if
imgOutputsave(responseoutputstream thisformat)
gdispose()
imgOutputdispose()
end sub
Sub sendError()
dim imgOutput as New bitmap( pixelformatformatbpprgb)
dim g as graphics = graphicsfromimage(imgOutput)
gclear(coloryellow)
gdrawString(错误! New font(黑体fontstylebold)systembrusheswindowtext New pointF())
ntenttype=image/gif
imgOutputsave(responseoutputstream imageformatgif)
gdispose()
imgOutputdispose()
end sub
</script>
<%
responseclear
if request(src)= or request(height)= or request(width)= then
call sendError()
else
if fileexists(servermappath(request(src))) then
call sendFile()
else
call sendError()
end if
end if
responseend
%>
在以上的程序中我们看到两个函数一个是SendFile这一函数主要功能为显示服务器上的图片该图片的大小通过Width和Height设置同时程序会自动检测图片类型另外一个是SendError这一函数的主要功能为服务器上的图片文件不存在时显示错误信息这里很有趣错误信息也是通过图片给出的(如图)
以上的程序显示图片并且改变图片大小现在我们将这个程序进一步显示图片并且保持图片的长宽比例这样和实际应用可能比较接近特别是需要制作电子相册或者是图片网站的时候比较实用我们先来看主要函数
Function NewthumbSize(currentwidth currentheight)
dim tempMultiplier as Double
if currentheight > currentwidth then
tempMultiplier = / currentheight
Else
tempMultiplier = / currentwidth
end if
dim NewSize as New Size(CInt(currentwidth * tempMultiplier) CInt(currentheight * tempMultiplier))
return NewSize
End Function
以上程序是增加的一个函数NewthumbSize该函数专门处理改变一会的图片大小这个图片的长宽和原图片的长宽保持相同比例其他部分请参考上文程序代码