I thought it would be an easy requirement to fetch an image from a SharePoint 2007 picture library and bind to a System.Drwaing.Image object. But when I started doing that, I had to give myself 3 to 4 hours. So here is the code snippet to fetch images from a SharePoint 2007 picture library.
Function to return Image as MemoryStream
This function will return an image from a SharePoint 2007 picture library using WSS Object model. This function is taking siteUrl and filename to be fetched from the picture library. This function is returning a MemoryStream.
public static MemoryStream GetImageforCharts(string siteUrl, string fileName)
MemoryStream imageStream = null;
using (SPSite site = new SPSite(siteUrl))
// using (SPSite site = SPContext.Current.Site)
using (SPWeb web = site.OpenWeb())
SPPictureLibrary chartPictureLibrary = (SPPictureLibrary)web.Lists["UrPictureLibraryName"];
SPQuery query = new SPQuery();
query.Query = @"<Where><Eq><FieldRef Name ='Title'/><Value Type='Text'>" + fileName + "</Value></Eq></Where>";
SPListItemCollection lstImages = chartPictureLibrary.GetItems(query);
foreach (SPListItem r in lstImages)
SPFile file = r.File;
using (Stream fileContents = file.OpenBinaryStream())
long length = fileContents.Length ;
fileContentsArray = new Byte[length];
imageStream = new MemoryStream(fileContentsArray);
catch (Exception ex)
Using the Function
Now we can call the function as below, and save the image in a System.Drawing.Image object.