I thought this is an easy requirement to fetch Image form SharePoint 2007 picture library and bind to a System.Drwaing.Image object. But when I started doing that, I had to give my 3 to 4hrs. So here is the code snippet to fetch images from SharePoint 2007 Picture library.
Namespace Required
Function to return Image as MemoryStream
This function will return Image from Picture Library of SharePoint 2007 using WSS Object model. This function is taking siteUrl and filename to be fetched from the picture library. This function is returning MemoryStream
public static MemoryStream GetImageforCharts(string siteUrl, string fileName) { Byte[] fileContentsArray=null; MemoryStream imageStream = null; try { 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]; fileContents.Read(fileContentsArray, 0,Convert.ToInt32(length)); } } } } imageStream = new MemoryStream(fileContentsArray); return imageStream; } catch (Exception ex) { return null; }Using the Function
Now we can call the function as below, and save the Image in System.Drawing.Image object.
Leave a Reply