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
分享到:
相关推荐
以二进制形式后台打开dwg文件,利用dwg文件本身已经存储了缩略图这一性质,读取缩略图信息并转换为位图显示,显示结果与CAD初始界面最近打开文档显示的缩略图一样。(注:以CAD2019为例,dwg文件需要保存为“AutoCAD...
ASP.NET图片生成缩略图(VB.NET),高宽自定义
ASP.NET 图片上传下载缩略察看C#和VB双版.rar 从本地向SQL Server上传存入图片 从SQL Server下载并在网页中显示图片 同时能显示缩略图和大图 含VB.NET和C#两个版本 内含数据库文件,简单附加到SQL Server中即可 ...
解决.net缩略图质量问题 Asp.net生成高质量缩略图
上传图片并生成高清晰缩略...baidu或者google,c#的方法也是很多的,但是一用却发现缩略图不清晰啊,缩略图片太大之类的事情,下面是我在处理图片上的代码,效果不错,所以拿出来分享,(效果能达到一些绘图软件的效果)
原类生成的缩略图的问题在于:高或者宽可能会大于需求值。比如,我需要的图片宽为150,高为120,当原图 * 高为150,宽为150或差距不大时,生成的图片不会有变化,即也是高150,宽150,这样,当把这些图片显示到网页...
C#的资源管理器支持缩略图,平铺,图标,列表,详细信息视图,vista下缩略图视图下还可以显示Windows Explorer的包含文件夹内文件图标的文件夹大图标。
绝对好用的上传图片的vb.net示例,可按比例形成缩略图,并存于服务器端。略加改动,当然也就可以用来上传文件。关键是VB的例子不多。如果不行,可能是IIS配置等问题
VB.NET高级编程 介绍了.net的来龙去脉,对想从vb6.0过渡到.net的朋友很有帮助,值得看看。老外的东西很详细
获取图片的缩略图 鼠标拽区,截取图片的指定区域 在Panel控件上绘图,绘制鼠标拽出来的矩形。双重缓存的运用。Invalidate、Paint重绘控件。 Bitmap,Image,Rectangle运用。 程序界面:...
(vb.net)资源管理器,功能强大,使用内置API获取文件图标 图标显示的非常完美
将网页抓取成图片格式的VB.NET程序,可指定网址打开网页后自动抓取网页为图片文件,并保存成指定格式,生成自定义大小的缩略图,自定义图片大小,甚至还可以设置水印文字。
asp.net 自动生成缩略图,asp.net 自动生成缩略图,asp.net 自动生成缩略图
【程序老媛出品,必属精品,亲测校正,质量保证】 资源名:vb将图片生成缩略图...源码说明: 基于vb编写的将图片生成缩略图的程序 图片压缩 包含完整的源码和注释 很适合借鉴学习 适合人群:新手及有一定经验的开发人员
vb制作缩略图, 调取GDI+模块.....................
1.清晰文字边缘(文字水印); 2.图片旋转加水印; 3.水印位置旋转控制精准度; 4.原图自定义删除; 5.图像亮度、对比度、RGB颜色值的调整; 6.可获取生成后的图片路径; 7.图片无损生成; 8.水印文字阴影禁启用; 9....
用asp.net做的网页缩略图源码 用asp.net做的网页缩略图源码 用asp.net做的网页缩略图源码
本文详细介绍在ASP.NET中上传图片并生成缩略图 在ASP.NET中上传图片并生成缩略图!
可以按宽或高等比例压缩图片,将原图生成规定尺寸的小图
.net缩略图控件(gdi)是方便程序员开发时用的工具