成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

制作最清晰縮略圖的完整類(VB.NET版)

2010-08-28 10:50:18來源:西部e網作者:

先收集一些相關資源
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

關鍵詞:ASP.NET
主站蜘蛛池模板: 江永县| 荥经县| 通化市| 炉霍县| 舞钢市| 鞍山市| 乾安县| 南川市| 永寿县| 饶阳县| 个旧市| 长沙县| 嘉禾县| 马边| 那坡县| 肥城市| 栾城县| 微山县| 得荣县| 威远县| 台南县| 微博| 乌鲁木齐市| 九江市| 仙桃市| 兴义市| 五华县| 宁强县| 江川县| 邛崃市| 花垣县| 吉林省| 汾阳市| 都匀市| 舞阳县| 澄城县| 阿拉善左旗| 克山县| 佛山市| 鲜城| 鹤岗市|