以缩略图的形式显示数据库的图片

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")) % > ' >

最后就实现了功能
备注:因为第一次总结,所以有些地方没写清楚,大家可以给我留言,我将给予修改

你可能感兴趣的:(数据库)