Mini Kabibi Habibi
<%@ WebHandler Language="vb" Class="Thumb" %>
Imports System
Imports System.Web
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.IO
Public Class Thumb
Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim photoName As String = context.Request.QueryString("i")
Dim size As Integer = Convert.ToInt32(context.Request.QueryString("size"))
Dim photoPath As String = context.Server.MapPath(System.IO.Path.Combine(FakeDataHelper.PhotosFolder, photoName))
If File.Exists(photoPath) Then
Using thumb As Bitmap = ChangeImageSize(Image.FromFile(photoPath), size)
Dim buffer() As Byte
Using ms As New MemoryStream()
thumb.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
buffer = ms.ToArray()
End Using
context.Response.ContentType = "image/png"
context.Response.BinaryWrite(buffer)
End Using
End If
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return True
End Get
End Property
Function ChangeImageSize(ByVal original As Image, ByVal width As Integer) As Bitmap
Dim newWidth As Integer = width
Dim newHeight As Integer = CInt(Fix(original.Height * (CDbl(width) / original.Width)))
Dim thumbnail As New Bitmap(newWidth, newHeight)
Dim g As Graphics = Graphics.FromImage(thumbnail)
g.InterpolationMode = InterpolationMode.HighQualityBicubic
g.DrawImage(original, 0, 0, newWidth, newHeight)
Return thumbnail
End Function
End Class