您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。