制作最清晰缩略图的完整类(VB.NET版)
2004-10-07 10:31
316 查看
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
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版)
- 制作最清晰缩略图的完整类(VB.NET版)
- 制作最清晰缩略图的完整类(VB.NET版)
- 制作最清晰缩略图的完整类(VB.NET版)
- 制作最清晰缩略图的完整类(VB.NET版)
- [导入]制作最清晰缩略图的完整类(VB.NET版)
- 制作最清晰缩略图的完整类
- 制作最清晰缩略图的完整类
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程
- C#高级编程(第四版)完整较清晰版下载
- 用ASPJPEG组件制作图片的缩略图和加水印
- C#图片处理,缩略图制作
- java完整的利用itext7制作pdf、二维码图片插入pdf,并解析pdf中的二维码信息
- 用Installshield制作一个完整程序实例(一)--基本设置(一)
- UITableView的完整制作
- 虚拟字符设备的完整制作过程 模块源代码,应用,编译所有步骤均有详细介绍
- windows10环境安装ubuntu完整过程和Ubuntu的U盘启动盘制作
- MagickWand 制作gif动态图片的动态缩略图
- ArcGIS Server9.3完整清晰安装流程
- Asp.net 快速生成清晰缩略图解决方案