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中怎么实现一个缩略图案的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。