GetImage() public méthode

public GetImage ( ) : PdfImageObject
Résultat PdfImageObject
        public void RenderImage(ImageRenderInfo renderInfo)
        {
            PdfImageObject imagen = renderInfo.GetImage();
            PdfName filtro = (PdfName)imagen.Get(PdfName.FILTER);

            if (filtro != null)
            {
                System.Drawing.Image drawingImage = imagen.GetDrawingImage();
                string extension = ".";

                if (filtro == PdfName.DCTDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.JPG.FileExtension;
                }
                else if (filtro == PdfName.JPXDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.JP2.FileExtension;
                }
                else if (filtro == PdfName.FLATEDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.PNG.FileExtension;
                }
                else if (filtro == PdfName.LZWDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.CCITT.FileExtension;
                }

                this.Imagenes.Add(drawingImage, extension);
            }
        }
        public virtual void RenderImage(ImageRenderInfo renderInfo) {
            IList<Rectangle> areasToBeCleaned = GetImageAreasToBeCleaned(renderInfo);

            if (areasToBeCleaned == null || newClippingPath.IsEmpty()) {
                chunks.Add(new PdfCleanUpContentChunk.Image(false, null));
            } else {
                PdfImageObject pdfImage = renderInfo.GetImage();
                byte[] imageBytes = ProcessImage(pdfImage.GetImageAsBytes(), areasToBeCleaned);

                if (renderInfo.GetRef() == null && pdfImage != null) { // true => inline image
                    PdfDictionary dict = pdfImage.GetDictionary();
                    PdfObject imageMask = dict.Get(PdfName.IMAGEMASK);
                    Image image = Image.GetInstance(imageBytes);

                    if (imageMask == null) {
                        imageMask = dict.Get(PdfName.IM);
                    }

                    if (imageMask != null && imageMask.Equals(PdfBoolean.PDFTRUE)) {
                        image.MakeMask();
                    }

                    PdfContentByte canvas = Context.Canvas;
                    canvas.AddImage(image, 1, 0, 0, 1, 0, 0, true);
                } else if (pdfImage != null && imageBytes != pdfImage.GetImageAsBytes()) {
                    chunks.Add(new PdfCleanUpContentChunk.Image(true, imageBytes));
                }
            }
        }
		// ---------------------------------------------------------------------------     
		/**
		 * @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(
		 *     com.itextpdf.text.pdf.parser.ImageRenderInfo)
		 */
        public void RenderImage(ImageRenderInfo renderInfo)
        {
            PdfImageObject image = renderInfo.GetImage();
            //PdfName filter = (PdfName)image.Get(PdfName.FILTER);

            string imageName = string.Format("{0:0000}_{1:0000}.{2}", PageIndex, ImagesList.Count, image.GetImageBytesType().FileExtension);
            var pageImageIndex = new PageImageIndex
            {
                ImageName = imageName,
                ImageIndex = ImagesList.Count,
                PageIndex = PageIndex
            };
            var imageType = image.GetImageBytesType();
            //if (imageType != PdfImageObject.ImageBytesType.JBIG2)
            //{
            //var bmp = image.GetDrawingImage();                

            // Write image to file
            string pathToSave = string.Format(@"{0}\{1}", OutputPath, imageName);
            //bmp.Save(string.Format(pathToSave));
            // bmp.Dispose();

            // Sometime gdi+ error happen. We must write byte directly to disk
            if (!Directory.Exists(OutputPath))
                Directory.CreateDirectory(OutputPath);
            var bytes = image.GetImageAsBytes();
            File.WriteAllBytes(pathToSave, bytes);

            ImagesList.Add(pageImageIndex, null);
            //}
        }
 public void RenderImage(ImageRenderInfo renderInfo)
 {
     Image imageRange = null;
     iTextSharp.text.pdf.parser.PdfImageObject image = renderInfo.GetImage();
     if (image == null) return;
     try
     {
         imageRange = Image.FromStream(new MemoryStream(image.GetImageAsBytes()));
     }
     catch (Exception) {}
     if (imageRange != null)
     {
         if (textRange.Trim() != "")
             AddAllTextPars();
         ExtractedParagraphs.Add(new BookParagraph(BookParagraph.TYPE_PICTURE, imageRange, index, ++index));
     }
 }
Exemple #5
0
// ---------------------------------------------------------------------------     
    /**
     * @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(
     *     com.itextpdf.text.pdf.parser.ImageRenderInfo)
     */
    public void RenderImage(ImageRenderInfo renderInfo) {
      try {
        PdfImageObject image = renderInfo.GetImage();
        if (image == null 
/*
 * do not attempt to parse => jbig2 decoder not fully implemented.
 * THE JAVA EXAMPLE INCORRECTLY CREATES A CORRUPT JBIG2 IMAGE
 * BECAUSE THERE IS NO EXPLICIT CHECK. I POSTED TWICE TO THE MAILING
 * LIST, SINCE VERSION 5.1.3 BUT THE ERROR HAS NOT BEEN CORRECTED.
 */
          || image.GetImageBytesType() == PdfImageObject.ImageBytesType.JBIG2
        ) 
        return;
        
        _imageNames.Add(string.Format(
          "Image{0}.{1}", 
          renderInfo.GetRef().Number, image.GetFileType()
        ) );
        _myImages.Add(image.GetImageAsBytes());
      }
      catch {
// pass through any other unsupported image types
      }
    }
        public void RenderImage(ImageRenderInfo renderInfo)
        {
            PdfImageObject image = renderInfo.GetImage();
            PdfName filter = (PdfName)image.Get(PdfName.FILTER);

            //int width = Convert.ToInt32(image.Get(PdfName.WIDTH).ToString());
            //int bitsPerComponent = Convert.ToInt32(image.Get(PdfName.BITSPERCOMPONENT).ToString());
            //string subtype = image.Get(PdfName.SUBTYPE).ToString();
            //int height = Convert.ToInt32(image.Get(PdfName.HEIGHT).ToString());
            //int length = Convert.ToInt32(image.Get(PdfName.LENGTH).ToString());
            //string colorSpace = image.Get(PdfName.COLORSPACE).ToString();

            /* It appears to be safe to assume that when filter == null, PdfImageObject 
             * does not know how to decode the image to a System.Drawing.Image.
             * 
             * Uncomment the code above to verify, but when I've seen this happen, 
             * width, height and bits per component all equal zero as well. */
            if (filter != null)
            {
                System.Drawing.Image drawingImage = image.GetDrawingImage();

                string extension = ".";

                if (filter == PdfName.DCTDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.JPG.FileExtension;
                }
                else if (filter == PdfName.JPXDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.JP2.FileExtension;
                }
                else if (filter == PdfName.FLATEDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.PNG.FileExtension;
                }
                else if (filter == PdfName.LZWDECODE)
                {
                    extension += PdfImageObject.ImageBytesType.CCITT.FileExtension;
                }

                /* Rather than struggle with the image stream and try to figure out how to handle 
                 * BitMapData scan lines in various formats (like virtually every sample I've found 
                 * online), use the PdfImageObject.GetDrawingImage() method, which does the work for us. */
                this.Images.Add(drawingImage, extension);
            }
        }
Exemple #7
0
        public void RenderImage(ImageRenderInfo renderInfo)
        {
            PdfImageObject image = renderInfo.GetImage();
            try
            {
                image = renderInfo.GetImage();
                if (image == null) return;

                using (MemoryStream ms = new MemoryStream(image.GetImageAsBytes()))
                {
                    string filename = string.Format(@"{0}\Image-{1:0000}.{2}", outputPath, imageNumber++, image.GetFileType());
                    using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
                    {
                        fs.Write(ms.ToArray(), 0, (int)ms.Length);
                    }
                    this.statusListView.Invoke(new MainForm.AddStatusItemDelegate(mainForm.AddStatusItem), new object[] { filename, "Extracted" });
                }
            }
            catch (IOException ie)
            {
                /*
                 * pass-through; image type not supported by iText[Sharp]; e.g. jbig2
                */
            }
        }
Exemple #8
0
 //-------------------------------------------------------------------------
 private Bitmap RenderImage(ImageRenderInfo renderInfo)
 {
     PdfImageObject image = renderInfo.GetImage();
     using (System.Drawing.Image dotnetImg = image.GetDrawingImage())
     {
         if (dotnetImg != null)
         {
             using (MemoryStream ms = new MemoryStream())
             {
                 dotnetImg.Save(ms, ImageFormat.Tiff);
                 Bitmap d = new Bitmap(dotnetImg);
                 return d;//d.Save(imgPath);
             }
         }
     }
     return null;
 }