コード例 #1
0
ファイル: TestHSSFPictureData.cs プロジェクト: IMULMUL/npoi
        public void TestMacPicture()
        {
            HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("53446.xls");

            List <HSSFPictureData> lst = (List <HSSFPictureData>)wb.GetAllPictures();

            Assert.AreEqual(1, lst.Count);

            HSSFPictureData pict = lst[(0)];
            String          ext  = pict.SuggestFileExtension();

            if (!ext.Equals("png"))
            {
                Assert.Fail("Expected a PNG.");
            }

            //try to read image data using javax.imageio.* (JDK 1.4+)
            byte[] data = pict.Data;
            using (MemoryStream ms = new MemoryStream(data))
            {
                Image png = Image.Load(ms);
                Assert.IsNotNull(png);
                Assert.AreEqual(78, png.Width);
                Assert.AreEqual(76, png.Height);
                Assert.AreEqual((int)PictureType.PNG, pict.Format);
                Assert.AreEqual("image/png", pict.MimeType);
            }
        }
コード例 #2
0
ファイル: ImageExtractor.cs プロジェクト: phiree/NTSBase
        /// <summary>
        /// 图片命名
        /// </summary>
        /// <param name="supplierName"></param>
        /// <param name="productType"></param>
        /// <param name="ntsCode"></param>
        public void Excute(string filePath, string savePath)
        {
            BizProduct bizProduct = new BizProduct();

            System.Collections.IList allPictures;
            string          errMsg;
            IList <Product> products = bizProduct.ReadListFromExcelWithAllPictures(
                new System.IO.FileStream(filePath, System.IO.FileMode.Open)
                , out errMsg
                , out allPictures
                );

            //  IList<Product> products = importer.Read(new System.IO.FileStream(filePath, System.IO.FileMode.Open), out allPictures);

            if (products.Count != allPictures.Count)
            {
                throw new Exception(string.Format("提取失败:产品和图片的数量不相等.产品:{0},图片:{1}", products.Count, allPictures.Count));
            }
            for (int i = 0; i < products.Count; i++)
            {
                HSSFPictureData pic = (HSSFPictureData)allPictures[i];

                var    modelNumber = NLibrary.StringHelper.ReplaceInvalidChaInFileName(products[i].ModelNumber, "$") + ".jpg";
                string fileName    = savePath + modelNumber;
                NLibrary.IOHelper.EnsureFileDirectory(fileName);
                File.WriteAllBytes(fileName, pic.Data);
            }
        }
コード例 #3
0
ファイル: TestHSSFPictureData.cs プロジェクト: IMULMUL/npoi
        public void TestPictures()
        {
            HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("SimpleWithImages.xls");

            IList lst = wb.GetAllPictures();

            //Assert.AreEqual(2, lst.Count);

            for (IEnumerator it = lst.GetEnumerator(); it.MoveNext();)
            {
                HSSFPictureData pict = (HSSFPictureData)it.Current;
                String          ext  = pict.SuggestFileExtension();
                byte[]          data = pict.Data;
                if (ext.Equals("jpeg"))
                {
                    //try to read image data using javax.imageio.* (JDK 1.4+)
                    Image jpg = Image.Load(new MemoryStream(data));
                    Assert.IsNotNull(jpg);
                    Assert.AreEqual(192, jpg.Width);
                    Assert.AreEqual(176, jpg.Height);
                }
                else if (ext.Equals("png"))
                {
                    //try to read image data using javax.imageio.* (JDK 1.4+)
                    Image png = Image.Load(new MemoryStream(data));
                    Assert.IsNotNull(png);
                    Assert.AreEqual(300, png.Width);
                    Assert.AreEqual(300, png.Height);
                }
                else
                {
                    //TODO: Test code for PICT, WMF and EMF
                }
            }
        }
コード例 #4
0
        public static void CopyImage(HSSFSheet sheet, HSSFPictureData picData, int row, int col)
        {
            var             pictureIdx = sheet.Workbook.AddPicture(picData.Data, (NPOI.SS.UserModel.PictureType)picData.Format);
            var             drawing    = sheet.CreateDrawingPatriarch();
            ICreationHelper helper     = sheet.Workbook.GetCreationHelper();
            var             anchor     = helper.CreateClientAnchor();

            anchor.Col1 = col;
            anchor.Row1 = row;
            var pict = drawing.CreatePicture(anchor, pictureIdx);

            pict.Resize();
        }