Resize Image Before/And Upload To Databse ASP.NET
In this example i am going to describe how to resize image in ASP.NET before/and upload to ms sql database using C# and Vb.NET.
For this i am using FileUpload control to upload the image in datbase after resizing.
I am also displaying the Image in Gridviw after uploading to database.
To know how to display images in gridview read Display Images In GridView From DataBase
ASPX page html markup look like this
Hope this helps
In this example i am going to describe how to resize image in ASP.NET before/and upload to ms sql database using C# and Vb.NET.
For this i am using FileUpload control to upload the image in datbase after resizing.
I am also displaying the Image in Gridviw after uploading to database.
To know how to display images in gridview read Display Images In GridView From DataBase
ASPX page html markup look like this
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<asp:Button ID="btnUpload" runat="server"
OnClick="btnUpload_Click" Text="Upload" />
<br />
<br />
<asp:Label ID="lblMessage" runat="server"></asp:Label>
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID"
InsertVisible="False" ReadOnly="True"
SortExpression="ID" />
<asp:BoundField DataField="ImageName" HeaderText="ImageName"
SortExpression="ImageName" />
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# "Handler.ashx?ID=" + Eval("ID")%>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [ID], [ImageName], [Image]
FROM [Images]"></asp:SqlDataSource>
</div>
</form>
C# Code Behind
01using System;02using System.Data;03using System.Configuration;04using System.Web;05using System.Web.Security;06using System.Web.UI;07using System.Web.UI.WebControls;08using System.Web.UI.WebControls.WebParts;09using System.Web.UI.HtmlControls;10using System.IO;11using System.Data.SqlClient;12using System.Drawing.Imaging;13using System.Drawing.Drawing2D;14using System.Drawing;15 16 17public partial class _Default : System.Web.UI.Page 18{19 protected void Page_Load(object sender, EventArgs e)20 {21 22 }23protected void btnUpload_Click(object sender, EventArgs e)24{25 string strImageName = txtName.Text.ToString();26 if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")27 {28 string strExtension = System.IO.Path.GetExtension(FileUpload1.FileName);29 if ((strExtension.ToUpper() == ".JPG") | (strExtension.ToUpper() == ".GIF"))30 {31 // Resize Image Before Uploading to DataBase32 System.Drawing.Image imageToBeResized = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);33 int imageHeight = imageToBeResized.Height;34 int imageWidth = imageToBeResized.Width;35 int maxHeight = 240;36 int maxWidth = 320;37 imageHeight = (imageHeight * maxWidth) / imageWidth;38 imageWidth = maxWidth;39 40 if (imageHeight > maxHeight)41 {42 imageWidth = (imageWidth * maxHeight) / imageHeight;43 imageHeight = maxHeight;44 }45 46 Bitmap bitmap = new Bitmap(imageToBeResized, imageWidth, imageHeight);47 System.IO.MemoryStream stream = new MemoryStream();48 bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);49 stream.Position = 0;50 byte[] image = new byte[stream.Length + 1];51 stream.Read(image, 0, image.Length);52 53 54 55 // Create SQL Connection 56 SqlConnection con = new SqlConnection();57 con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;58 59 // Create SQL Command 60 61 SqlCommand cmd = new SqlCommand();62 cmd.CommandText = "INSERT INTO Images(ImageName,Image) VALUES (@ImageName,@Image)";63 cmd.CommandType = CommandType.Text;64 cmd.Connection = con;65 66 SqlParameter ImageName = new SqlParameter("@ImageName", SqlDbType.VarChar, 50);67 ImageName.Value = strImageName.ToString();68 cmd.Parameters.Add(ImageName);69 70 SqlParameter UploadedImage = new SqlParameter("@Image", SqlDbType.Image, image.Length);71 UploadedImage.Value = image;72 cmd.Parameters.Add(UploadedImage);73 con.Open();74 int result = cmd.ExecuteNonQuery();75 con.Close();76 if (result > 0)77 lblMessage.Text = "File Uploaded";78 GridView1.DataBind();79 }80 }81 }82}VB.NET Code Behind
01Imports System02Imports System.Data03Imports System.Configuration04Imports System.Web05Imports System.Web.Security06Imports System.Web.UI07Imports System.Web.UI.WebControls08Imports System.Web.UI.WebControls.WebParts09Imports System.Web.UI.HtmlControls10Imports System.IO11Imports System.Data.SqlClient12Imports System.Drawing.Imaging13Imports System.Drawing.Drawing2D14Imports System.Drawing15 16 17Public Partial Class _Default18 Inherits System.Web.UI.Page19 Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)20 21 End Sub22 Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)23 Dim strImageName As String = txtName.Text.ToString()24 If FileUpload1.PostedFile IsNot Nothing AndAlso FileUpload1.PostedFile.FileName <> "" Then25 Dim strExtension As String = System.IO.Path.GetExtension(FileUpload1.FileName)26 If (strExtension.ToUpper() = ".JPG") Or (strExtension.ToUpper() = ".GIF") Then27 ' Resize Image Before Uploading to DataBase28 Dim imageToBeResized As System.Drawing.Image = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream)29 Dim imageHeight As Integer = imageToBeResized.Height30 Dim imageWidth As Integer = imageToBeResized.Width31 Dim maxHeight As Integer = 24032 Dim maxWidth As Integer = 32033 imageHeight = (imageHeight * maxWidth) / imageWidth34 imageWidth = maxWidth35 36 If imageHeight > maxHeight Then37 imageWidth = (imageWidth * maxHeight) / imageHeight38 imageHeight = maxHeight39 End If40 41 Dim bitmap As New Bitmap(imageToBeResized, imageWidth, imageHeight)42 Dim stream As System.IO.MemoryStream = New MemoryStream()43 bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)44 stream.Position = 045 Dim image As Byte() = New Byte(stream.Length) {}46 stream.Read(image, 0, image.Length)47 48 49 50 ' Create SQL Connection 51 Dim con As New SqlConnection()52 con.ConnectionString = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString53 54 ' Create SQL Command 55 56 Dim cmd As New SqlCommand()57 cmd.CommandText = "INSERT INTO Images(ImageName,Image) VALUES (@ImageName,@Image)"58 cmd.CommandType = CommandType.Text59 cmd.Connection = con60 61 Dim ImageName As New SqlParameter("@ImageName", SqlDbType.VarChar, 50)62 ImageName.Value = strImageName.ToString()63 cmd.Parameters.Add(ImageName)64 65 Dim UploadedImage As New SqlParameter("@Image", SqlDbType.Image, image.Length)66 UploadedImage.Value = image67 cmd.Parameters.Add(UploadedImage)68 con.Open()69 Dim result As Integer = cmd.ExecuteNonQuery()70 con.Close()71 If result > 0 Then72 lblMessage.Text = "File Uploaded"73 End If74 GridView1.DataBind()75 End If76 End If77 End Sub78End Class
0 comments:
Post a Comment