German Wear Discount Shop - Click Here Write for Dotnet-friends and earn for your each submission [Dot]Net-Friends
Skip Navigation Links
Home
Latest
Fast Code
Articles
Tutorials
Online Resources
Forums
Login   | Hi, Guest


Loading a user Personalized Image into MS SQL Database

Written by omerkamal on Mar 25, 2007
How to load a user Image to the Database in ASP .NET 2.0

Explanation:

 

1.       Create a Table in your Database

 

CREATE TABLE [dbo].[Photos](
[PhotoID] [int] IDENTITY(1,1) NOT NULL,

[UserName] [nvarchar](50) NOT NULL,
[Caption] [nvarchar](50) NOT NULL,
[ImageOriginal] [image] NOT NULL,

[ImageSmall] [image] NOT NULL,
CONSTRAINT [PK_Photos] PRIMARY KEY CLUSTERED
([PhotoID] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

    

 

2.       Add a Property to your Page code behind for holding the UserName 

 

    private string _username;

 

    public string UserName

    {

        get { return _username; }

        set { _username = value; }

    }

 

3.       On Page_Load event get the Current Online User’s UserName

 

protected void Page_Load(object sender, EventArgs e{

   System.Web.Security.MembershipUser ThisUser = Membership.GetUser(); 

        if (ThisUser != null)

        {

            UserName = ThisUser.UserName;

        }

        else

            UserName = string.Empty;

    }

 

4.       Add a new Proceedure to your Database

 

 

CREATE PROCEDURE [dbo].[AddPhoto]

            @UserName nvarchar(50),

            @Caption nvarchar(50),

            @ImageOriginal image,        

            @ImageSmall image

AS

      INSERT INTO [Photos] (

            [UserName],

            [Caption],

            [ImageOriginal],

            [ImageSmall]

            )

      VALUES (

            @UserName,       

            @Caption,

            @ ImageOriginal,

            @ ImageSmall

            )

RETURN

 

 

5.       Create a method for adding a picture to your Datebase

 

   public static void AddUserPicToUsersPics (string UserName, string Caption, byte[] BytesOriginal)

    {

     using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Personal"].ConnectionString))

     {

       using (SqlCommand command =new    SqlCommand("AddPhoto", connection))

            {

            command.CommandType = CommandType.StoredProcedure;

            command.Parameters.Add(new SqlParameter("@UserName", UserName));

            command.Parameters.Add(new SqlParameter("@Caption", Caption));

            command.Parameters.Add(new

                                  SqlParameter("@ImageOriginal", BytesOriginal));

          command.Parameters.Add(new SqlParameter("@ImageSmall",

          ResizeImageFile(BytesOriginal, 100)));

                connection.Open();

                command.ExecuteNonQuery();

            }

        }

    }

 

 

6.       Create a Method which will create a Thumbnail view of the image

 

   private static byte[] ResizeImageFile(byte[] imageFile, int targetSize)

    {

        using (System.Drawing.Image oldImage =

               System.Drawing.Image.FromStream(new MemoryStream(imageFile)))

        {

            Size newSize = CalculateDimensions(oldImage.Size, targetSize);

           using (Bitmap newImage = new

           Bitmap(newSize.Width, newSize.Height, PixelFormat.Format24bppRgb))

            {

                using (Graphics canvas = Graphics.FromImage(newImage))

                {

              canvas.SmoothingMode = SmoothingMode.AntiAlias;

              canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;

              canvas.PixelOffsetMode = PixelOffsetMode.HighQuality;

              canvas.DrawImage(oldImage, new

                                       Rectangle(new Point(0, 0), newSize));

                    MemoryStream m = new MemoryStream();

                    newImage.Save(m, ImageFormat.Jpeg);

                    return m.GetBuffer();

                }

            }

        }

    }

 

 

7.       Create a Helper Method for calculating the dimension for Thumbnail Image

 

  private static Size CalculateDimensions(Size oldSize, int targetSize)

    {

        Size newSize = new Size();

        if (oldSize.Height > oldSize.Width)

        {

            newSize.Width =

             (int)(oldSize.Width * ((float)targetSize/(float)oldSize.Height));

            newSize.Height = targetSize;

        }

        else

        {

            newSize.Width = targetSize;

            newSize.Height =

             (int)(oldSize.Height*((float)targetSize / (float)oldSize.Width));

        }

        return newSize;

    }

 

 

8.       Add a FileUpload Web Control and a Button to your Page

 

<asp:FileUpload ID="FileUpload1" runat="server" Width="400px" /> <br />

<asp:Button ID="btnSave" runat="server" Text="Save Image" OnClick="btnSave_Click" />

 

 

9.       Add code for saving image to the database on a Button Click event