Groups > Databases > Oracle for ASP.NET > Re: Image display on web form




Image display on web form

Image display on web form
Wed, 19 Mar 2008 19:59:25 +000
I am using ASP.NET 2.0 with C#. I am using an Oracle database as my
datawarehouse.
I have my images stored as a CLOB data type. I want to pull images to display
per user.  Each user has an image so when they login in it should display there
image.
Here is my code.


1). A stored procedure that will get the actual Base64 value that stores the
image
public static byte[] _ReadLogo()
    {
        byte[] buffer;
        Object obj = new Object();
        
        OracleConnection Conn = new OracleConnection();
        Conn.ConnectionString = ConfigurationSection.DbConnectionString;
        OracleCommand cmd = new OracleCommand("Getmypicture", Conn);
        cmd.CommandType = CommandType.StoredProcedure;

        Conn.Open();
        #region Input and Output Parameters
        cmd.Parameters.Add("id", OracleType.Int32).Value = userid;
        cmd.Parameters.Add("offset", OracleType.Int32).Value = 1;
        cmd.Parameters.Add("amount", OracleType.Int32).Value = 70;
        cmd.Parameters.Add("buffer", OracleType.Clob, 2000).Direction
= ParameterDirection.Output;
        #endregion
        cmd.ExecuteReader();

        //  Converting from Base64 to an Object 
        obj = (Object)cmd.Parameters["buffer"].ToString();

        IFormatter formatter = new BinaryFormatter();
        Stream stream = new MemoryStream();
        formatter.Serialize(stream, obj);
        stream.Close();

        //  Convert from Object to Binary
        buffer = (byte[])obj;

        return buffer;
    }

2). Now i convert my Binary data to the image file (using System.Drawing)
 public static System.Drawing.Image byteArrayToImage()
    {
        
        byte[] byteArrayIn = _ReadLogo();

        MemoryStream ms = new MemoryStream(byteArrayIn);
        System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
                
        return returnImage;
        
    }

The problem now is to get the result from byteArrayToImage to assign to a Image.
How do I get my image shown.
Post Reply
Re: Image display on web form
Wed, 19 Mar 2008 20:16:47 +000
For that you need to write either a HTTP  handler or create a seperate ASPX page
that just display images. Like this

<img src="myimagehandler.ashx?imageID=10" /> 

<img src="myimagehandler.aspx?imageID=10" /> 

for more information check here 

http://www.developerfusion.co.uk/show/3933/ 

http://aspalliance.com/141_Retrieving_Images_from_SqlServer_and_displaying_in_a_
DataGrid__ASP_NET
Post Reply
about | contact