Imports System
Imports System.Collections
Imports System.Data
Imports System.Data.SqlClient
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Public Class GetThumbnail
Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'最大长度
Const MaxLength = 130
If Request.QueryString("filename") <> "" Then
'*******************这里的filename 是指存入到的文件夹中的缩略图名*********************
'取得原图
Dim FileName As String = Request.QueryString("filename")
Dim bmpOld As Bitmap = New Bitmap(Server.MapPath("uploadPhotos/" & FileName))
'*******************uploadPhotos为你存储上传图片的文件夹,一般最好建立一个专门存放文件或相册的文件夹********
'计算缩小比例
Dim d1 As Double
If bmpOld.Height > bmpOld.Width Then
d1 = Convert.ToDouble(MaxLength) / Convert.ToDouble(bmpOld.Width)
Else
d1 = Convert.ToDouble(MaxLength) / Convert.ToDouble(bmpOld.Height)
End If
'产生缩图
Dim bmpThumb As Bitmap = New Bitmap(bmpOld, Convert.ToInt32(bmpOld.Width * d1), Convert.ToInt32(bmpOld.Height * d1))
'清除缓冲
Response.Clear()
'生成图片
bmpThumb.Save(Response.OutputStream, ImageFormat.Jpeg)
Response.End()
'释放资源
bmpThumb.Dispose()
bmpOld.Dispose()
End If
'GetThumbNail(Server.MapPath("uploadFiles/" & Request.QueryString("filename")), 100, 100, "image/pjpeg")

End Sub
'************************************************************
Private Function GetImageType(ByVal strContentType) As System.Drawing.Imaging.ImageFormat
Select Case (strContentType.ToString().ToLower())
Case "image/pjpeg"
GetImageType = System.Drawing.Imaging.ImageFormat.Jpeg
Case "image/gif"
GetImageType = System.Drawing.Imaging.ImageFormat.Gif
Case "image/bmp"
GetImageType = System.Drawing.Imaging.ImageFormat.Bmp
Case "image/tiff"
GetImageType = System.Drawing.Imaging.ImageFormat.Tiff
Case "image/x-icon"
GetImageType = System.Drawing.Imaging.ImageFormat.Icon
Case "image/x-png"
GetImageType = System.Drawing.Imaging.ImageFormat.Png
Case "image/x-emf"
GetImageType = System.Drawing.Imaging.ImageFormat.Emf
Case "image/x-exif"
GetImageType = System.Drawing.Imaging.ImageFormat.Exif
Case "image/x-wmf"
GetImageType = System.Drawing.Imaging.ImageFormat.Wmf
Case Else
GetImageType = System.Drawing.Imaging.ImageFormat.MemoryBmp
End Select
End Function
Private Sub GetThumbNail(ByVal strFileName, ByVal iWidth, ByVal iheight, ByVal strContentType)
Dim oImg As Image
oImg = oImg.FromFile(strFileName)
oImg = oImg.GetThumbnailImage(iWidth, iheight, Nothing, (New IntPtr).Zero)
Dim strGuid As String = (New Guid).NewGuid().ToString().ToUpper()
Dim strFileExt As String = strFileName.Substring(strFileName.LastIndexOf("."))
'保存到本地
'oImg.Save(Server.MapPath("images") + "\" + strGuid + strFileExt, GetImageType(strContentType))
'直接输出url文件
'Response.Redirect("images/" + strGuid + strFileExt)
'以下显示在屏幕上
Response.ContentType = strContentType
Dim MemStream As New MemoryStream
' 注意:这里如果直接用 oImg.Save(Response.OutputStream, GetImageType(strContentType))
' 对不同的格式可能会出错,比如Png格式。
oImg.Save(MemStream, GetImageType(strContentType))
MemStream.WriteTo(Response.OutputStream)
MemStream.Close()
End Sub

End Class
最后只要到显示图片的页面的html视图里把图片显示的代码改下:
<asp:Image runat="server" BorderWidth="1px" ID="Image1"
ImageUrl='<%# "GetThumbnail.aspx?filename=" + trimDataBinder.EvalContainer, "DataItem.PhotoUrl")) %>' >最后就实现了功能
备注:因为第一次总结,所以有些地方没写清楚,大家可以给我留言,我将给予修改

浙公网安备 33010602011771号