SpreadsheetGear The Performance Spreadsheet Component Company 
AddPicture(String,Double,Double,Double,Double) Method
See Also  Example
SpreadsheetGear.Shapes Namespace > IShapes Interface > AddPicture Method : AddPicture(String,Double,Double,Double,Double) Method
filename
The filename of the picture to add.
left
Left edge of the new picture in points.
top
Top edge of the new picture in points.
width
Width of the new picture in points.
height
Height of the new picture in points.
Adds the specified picture to the shapes collection at the specified position and with the specified size.

Syntax

C# 
virtual IShape AddPicture( 
   string filename,
   double left,
   double top,
   double width,
   double height
)

Parameters

filename
The filename of the picture to add.
left
Left edge of the new picture in points.
top
Top edge of the new picture in points.
width
Width of the new picture in points.
height
Height of the new picture in points.

Return Value

A shape object representing the newly created picture.

Example

Demonstrate adding a picture to a new workbook and returning the workbook from an ASP.NET page.
C#Copy Code
void Page_Load(Object sender, EventArgs e) 
    { 
        // Create a new empty workbook and get the first sheet.  
        SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook(); 
        SpreadsheetGear.IWorksheet worksheet = workbook.Worksheets["Sheet1"]; 
         
        // Get the image file name. 
        String imageFile = Server.MapPath("files/ssgear.gif"); 
         
        // Get the width and height of the picture in pixels and convert to 
        // points for use in the call to AddPicture.  This step is only 
        // necessary if the actual picture size is to be used and that size 
        // is unknown.  Another option is to calculate the width and height  
        // in row and column coordinates in the same manner as left and top below. 
        double width; 
        double height; 
        System.Drawing.Image image = System.Drawing.Image.FromFile(imageFile); 
        using (image) 
        { 
            width = image.Width * 72.0 / image.HorizontalResolution; 
            height = image.Height * 72.0 / image.VerticalResolution; 
        } 
         
        // Calculate the left and top placement of the picture by converting  
        // row and column coordinates to points.  Use fractional values to  
        // get coordinates anywhere in between row and column boundaries. 
        SpreadsheetGear.IWorksheetWindowInfo windowInfo = worksheet.WindowInfo; 
        // Convert from the center of column B to points. 
        double left = windowInfo.ColumnToPoints(1.5); 
        // Convert from the center of row 1 to points. 
        double top = windowInfo.RowToPoints(1.5); 
         
        // Add the picture from file. 
        worksheet.Shapes.AddPicture(imageFile, left, top, width, height); 
  
        // Stream the Excel spreadsheet to the client 
        Response.Clear(); 
        Response.ContentType = "application/vnd.ms-excel"; 
        workbook.SaveToStream(Response.OutputStream, SpreadsheetGear.FileFormat.XLS97); 
        Response.End(); 
    } 
    
Visual BasicCopy Code
Sub Page_Load(sender As Object, e As EventArgs)
        ' Create a new empty workbook and get the first sheet.
        Dim workbook As SpreadsheetGear.IWorkbook = SpreadsheetGear.Factory.GetWorkbook()
        Dim worksheet As SpreadsheetGear.IWorksheet = workbook.Worksheets("Sheet1")

        ' Get the image file name.
        Dim imageFile As String = Server.MapPath("files/ssgear.gif")

        ' Get the width and height of the picture in pixels and convert to
        ' points for use in the call to AddPicture. This step is only
        ' necessary if the actual picture size is to be used and that size
        ' is unknown. Another option is to calculate the width and height
        ' in row and column coordinates in the same manner as left and top below.
        Dim width As Double
        Dim height As Double
        Dim image As System.Drawing.Image = System.Drawing.Image.FromFile(imageFile)
        Try
            width = image.Width * 72.0 / image.HorizontalResolution
            height = image.Height * 72.0 / image.VerticalResolution
        Finally
            image.Dispose()
        End Try

        ' Calculate the left and top placement of the picture by converting
        ' row and column coordinates to points. Use fractional values to
        ' get coordinates anywhere in between row and column boundaries.
        Dim windowInfo As SpreadsheetGear.IWorksheetWindowInfo = worksheet.WindowInfo
        ' Convert from the center of column B to points.
        Dim left As Double = windowInfo.ColumnToPoints(1.5)
        ' Convert from the center of row 2 to points.
        Dim top As Double = windowInfo.RowToPoints(1.5)

        ' Add the picture from file.
        worksheet.Shapes.AddPicture(imageFile, left, top, width, height)

        ' Stream the Excel spreadsheet to the client
        Response.Clear()
        Response.ContentType = "application/vnd.ms-excel"
        workbook.SaveToStream(Response.OutputStream, SpreadsheetGear.FileFormat.XLS97)
        Response.End()
    End Sub 'Page_Load

Remarks

Use RowToPoints and ColumnToPoints to convert row and column positions to points.

Pictures with PNG, JPEG and Enhanced Windows Metafiles magic signatures are stored in the workbook as is. All other images are converted to PNG before being stored in the workbook.

Requirements

Platforms: Windows Vista, Windows XP, Windows Server 2008, Windows Server 2003, Windows 2000, Windows Me and Windows 98, including 32 bit and 64 bit editions where applicable. SpreadsheetGear for .NET 1.x requires the Microsoft .NET Framework 1.1 or .NET 2.0 (works with .NET 3.x). SpreadsheetGear for .NET 2007 requires the Microsoft .NET Framework 2.0 (works with .NET 3.x).

See Also