Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/VB/HotelBooking/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/VB/HotelBooking/Thumb.ashx

<%@ 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