SpreadsheetGear.Shapes Namespace > IShapes Interface > AddPicture Method : AddPicture(String,Double,Double,Double,Double) Method |
Adds the specified picture to the shapes collection at the specified position and with the specified size.
[Visual Basic]
Overloads Overridable Function AddPicture( _
ByVal filename As String , _
ByVal left As Double , _
ByVal top As Double , _
ByVal width As Double , _
ByVal height As Double _
) As IShape
[C#]
virtual IShape AddPicture(
string filename,
double left,
double top,
double width,
double height
);
[C++]
virtual IShape* AddPicture(
string * filename,
double left,
double top,
double width,
double height
)
[C++/CLI]
virtual IShape^ AddPicture(
String ^ filename,
double left,
double top,
double width,
double height
)
A shape object representing the newly created picture.
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.
Demonstrate adding a picture to a new workbook and returning the workbook from an ASP.NET page.
[C#]
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 Basic]
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
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
IShapes Interface | IShapes Members | Overload List | RowToPoints Method | ColumnToPoints Method
See our live Excel Reporting, Excel Charting, Excel to DataGrid and Excel Calculation Samples.
Copyright © 2003-2007 SpreadsheetGear LLC. All Rights Reserved.
SpreadsheetGear and Spreadsheet Gear are trademarks of SpreadsheetGear LLC.