public void TestClonePictures() { IWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("SimpleWithImages.xls"); InternalWorkbook iwb = ((HSSFWorkbook)wb).Workbook; iwb.FindDrawingGroup(); for (int pictureIndex = 1; pictureIndex <= 4; pictureIndex++) { EscherBSERecord bse = iwb.GetBSERecord(pictureIndex); Assert.AreEqual(1, bse.Ref); } wb.CloneSheet(0); for (int pictureIndex = 1; pictureIndex <= 4; pictureIndex++) { EscherBSERecord bse = iwb.GetBSERecord(pictureIndex); Assert.AreEqual(2, bse.Ref); } wb.CloneSheet(0); for (int pictureIndex = 1; pictureIndex <= 4; pictureIndex++) { EscherBSERecord bse = iwb.GetBSERecord(pictureIndex); Assert.AreEqual(3, bse.Ref); } }
/// <summary> /// Return the dimension of the embedded image in pixel /// </summary> /// <returns>image dimension</returns> public Size GetImageDimension() { InternalWorkbook iwb = (_patriarch.Sheet.Workbook as HSSFWorkbook).Workbook; EscherBSERecord bse = iwb.GetBSERecord(PictureIndex); byte[] data = bse.BlipRecord.PictureData; //int type = bse.BlipTypeWin32; using (MemoryStream ms = RecyclableMemory.GetStream(data)) { using (Image img = Image.Load(ms)) { return(img.Size()); } } }