VB.NET中怎么实现一个缩略图案

VB.NET中怎么实现一个缩略图案,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

VB.NET实现缩略图代码:

Public Class ClassUpPic  Private vPicFile As System.Web.UI.HtmlControls.HtmlInputFile  Private vSmallPicSize, vUpFileSize As Integer  Private vUpPicPath, vNewPicName, vTmpPicName As String  Private PicMin, PicMax, vPicMax As System.Drawing.Image  Private PicFormat As System.Drawing.Imaging.ImageFormat  Private MinHeight, MinWidth As Decimal  Private Myfile As IO.File  Public Sub New(ByVal PicFile As System.Web.UI.HtmlControls.HtmlInputFile, ByVal UpPicType As PicType)  vPicFile = PicFile  vUpFileSize = HttpContext.Current.Application("UpFileSize")  Select Case UpPicType  Case PicType.Face  vUpPicPath = "upload/images/Face" vSmallPicSize = 150 vNewPicName = HttpContext.Current.Session("MemberID") & "." & GetRightByChar(vPicFile.PostedFile.FileName, ".")  Case PicType.Photo  vUpPicPath = "upload/images/Photo" vSmallPicSize = 150 vNewPicName = System.Guid.NewGuid.ToString() & "." & GetRightByChar(vPicFile.PostedFile.FileName, ".")  Case PicType.Pic  vUpPicPath = "upload/images/Pic" vSmallPicSize = 550 vNewPicName = System.Guid.NewGuid.ToString() & "." & GetRightByChar(vPicFile.PostedFile.FileName, ".")  End Select  End Sub  Public Function GetSavedFileName() As String  '检验图片类型=================================================================  If vPicFile.PostedFile.FileName = "" Then  Throw New NotSupportedException("文件为空,请您选择上传的图片文件!")  End If  If Left(vPicFile.PostedFile.ContentType, 5) <> "image" Then  Throw New NotSupportedException("文件格式不合法,请选取有效的图片文件!" & vPicFile.PostedFile.ContentType)  End If  If vPicFile.PostedFile.ContentLength > vUpFileSize Then  Dim MaxNumber As Decimal = vUpFileSize / 1024 / 1024  Throw New NotSupportedException("上传的图片文件太大,***支持" & Format(MaxNumber, "##,##0") & "M!")  End If  '检验数量限制=================================================================  '保存大文件=================================================================  vPicFile.PostedFile.SaveAs(HttpContext.Current.Server.MapPath(vUpPicPath & "/max/") & vNewPicName)  vPicFile.Dispose()  '缩略图片文件=================================================================  PicMax = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath(vUpPicPath & "/max/") & vNewPicName)  If Not (PicMax.RawFormat Is PicFormat.Gif Or PicMax.RawFormat Is PicFormat.Png) Then  If PicMax.Height > vSmallPicSize Or PicMax.Width > vSmallPicSize Then  vTmpPicName = System.Guid.NewGuid.ToString() & ".png"  vPicMax = PicMax  PicMax.Save(HttpContext.Current.Server.MapPath(vUpPicPath & "/max/") & vTmpPicName, PicFormat.Png)  vPicMax.Dispose()  PicMax = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath(vUpPicPath & "/max/") & vTmpPicName)  End If  End If  '保存小文件=================================================================  GetMinPic(PicMax).Save(HttpContext.Current.Server.MapPath(vUpPicPath & "/min/") & vNewPicName, PicFormat.Jpeg)  PicMax.Dispose()  '删除临时png文件=================================================================  If vTmpPicName <> "" Then Myfile.Delete(HttpContext.Current.Server.MapPath(vUpPicPath & "/max/") & vTmpPicName)  Return vNewPicName  End Function  Private Function GetMinPic(ByVal MaxPic As System.Drawing.Image) As System.Drawing.Image  If MaxPic.Height > vSmallPicSize Or MaxPic.Width > vSmallPicSize Then  If MaxPic.Height > MaxPic.Width Then  MinWidth = MaxPic.Width / (MaxPic.Height / vSmallPicSize)  MinHeight = vSmallPicSize Else  MinWidth = vSmallPicSize MinHeight = MaxPic.Height / (MaxPic.Width / vSmallPicSize)  End If  Return MaxPic.GetThumbnailImage(CInt(MinWidth), CInt(MinHeight), Nothing, New System.IntPtr())  Else  Return MaxPic  End If  End Function  Enum PicType  Face = 1 Photo = 2 Pic = 3 End Enum  Private Function GetRightByChar(ByVal StrValue As String, ByVal CharValue As String) As String  Dim MyStr() As String = Split(StrValue, CharValue)  Return MyStr(MyStr.Length - 1)  End Function  End Class

看完上述内容,你们掌握VB.NET中怎么实现一个缩略图案的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!