public static void displayImageInfo(ImageInfo info) { ImageSize size = info.getSize(); Dimension2D dPt = size.getDimensionPt(); Dimension dPx = size.getDimensionPx(); log.debug(info.getOriginalURI() + " " + info.getMimeType() + " " + Math.round(dPx.getWidth()) + "x" + Math.round(dPx.getHeight())); log.debug("Resolution:" + Math.round(size.getDpiHorizontal()) + "x" + Math.round(size.getDpiVertical())); log.debug("Print size: " + Math.round(dPt.getWidth() / 72) + "\" x" + Math.round(dPt.getHeight() / 72) + "\""); }
/** * Returns an image from the cache or null if it wasn't found. * @param info the ImageInfo instance representing the image * @param flavor the requested ImageFlavor for the image * @return the requested image or null if the image is not in the cache */ public Image getImage(ImageInfo info, ImageFlavor flavor) { return getImage(info.getOriginalURI(), flavor); }
/** * Registers an ImageInfo instance with the cache. * @param info the ImageInfo instance */ protected void putImageInfo(ImageInfo info) { //An already existing ImageInfo is replaced. imageInfos.put(info.getOriginalURI(), info); }
/** {@inheritDoc} */ public String toString() { return getOriginalURI() + " (" + getMimeType() + ")"; }
public static void displayImageInfo(ImageInfo info) { ImageSize size = info.getSize(); Dimension2D dPt = size.getDimensionPt(); Dimension dPx = size.getDimensionPx(); log.debug(info.getOriginalURI() + " " + info.getMimeType() + " " + Math.round(dPx.getWidth()) + "x" + Math.round(dPx.getHeight())); log.debug("Resolution:" + Math.round(size.getDpiHorizontal()) + "x" + Math.round(size.getDpiVertical())); log.debug("Print size: " + Math.round(dPt.getWidth() / 72) + "\" x" + Math.round(dPt.getHeight() / 72) + "\""); }
private void makePageForImage(ImageInfo info, ImageLayout layout) { this.imageLayout = layout; curPage = makeNewPage(false); fillPage(info.getOriginalURI()); finishPage(); }
/** {@inheritDoc} */ public Image loadImage(ImageInfo info, Map hints, ImageSessionContext session) throws ImageException, IOException { if (!this.mime.equals(info.getMimeType())) { throw new IllegalArgumentException( "ImageInfo must be from a image with MIME type: " + this.mime); } Source src = session.needSource(info.getOriginalURI()); ImageRawStream rawImage = new ImageRawStream(info, getTargetFlavor(), XmlSourceUtil.needInputStream(src)); return rawImage; }
/** * Registers an image with the cache. * @param img the image */ public void putImage(Image img) { String originalURI = img.getInfo().getOriginalURI(); if (originalURI == null || "".equals(originalURI)) { return; //Don't cache if there's no URI } //An already existing Image is replaced. if (!img.isCacheable()) { throw new IllegalArgumentException( "Image is not cacheable! (Flavor: " + img.getFlavor() + ")"); } ImageKey key = new ImageKey(originalURI, img.getFlavor()); images.put(key, img); }
/** {@inheritDoc} */ public Image loadImage(ImageInfo info, Map hints, ImageSessionContext session) throws ImageException, IOException { if (!MimeConstants.MIME_EPS.equals(info.getMimeType())) { throw new IllegalArgumentException( "ImageInfo must be from a image with MIME type: " + MimeConstants.MIME_EPS); } Source src = session.needSource(info.getOriginalURI()); InputStream in = XmlSourceUtil.needInputStream(src); XmlSourceUtil.removeStreams(src); //so others cannot close them, we take them over PreloaderEPS.EPSBinaryFileHeader binaryHeader; binaryHeader = (PreloaderEPS.EPSBinaryFileHeader)info.getCustomObjects().get( PreloaderEPS.EPS_BINARY_HEADER); if (binaryHeader != null) { //Binary EPS: just extract the EPS part in.skip(binaryHeader.getPSStart()); in = new SubInputStream(in, binaryHeader.getPSLength(), true); } ImageRawEPS epsImage = new ImageRawEPS(info, in); return epsImage; }
/** {@inheritDoc} */ public Image loadImage(ImageInfo info, Map hints, ImageSessionContext session) throws ImageException, IOException { if (!MimeConstants.MIME_PNG.equals(info.getMimeType())) { throw new IllegalArgumentException("ImageInfo must be from a image with MIME type: " + MimeConstants.MIME_PNG); } Source src = session.needSource(info.getOriginalURI()); ImageInputStream in = ImageUtil.needImageInputStream(src); // Remove streams as we do things with them at some later time. XmlSourceUtil.removeStreams(src); SeekableStream seekStream = new ImageInputStreamSeekableStreamAdapter(in); PNGFile im = new PNGFile(seekStream); ImageRawPNG irpng = im.getImageRawPNG(info); return irpng; }
public void transparencyIgnored(Object pdfProfile) { if (!warningIssued) { EventBroadcaster broadcaster = context.getUserAgent().getEventBroadcaster(); SVGEventProducer producer = SVGEventProducer.Provider.get(broadcaster); producer.transparencyIgnored(this, pdfProfile, image.getInfo().getOriginalURI()); warningIssued = true; } } }
/** {@inheritDoc} */ protected void drawImageUsingImageHandler(ImageInfo info, Rectangle rect) throws ImageException, IOException { if (!getDocumentHandler().getPSUtil().isOptimizeResources() || PSImageUtils.isImageInlined(info, (PSRenderingContext)createRenderingContext())) { super.drawImageUsingImageHandler(info, rect); } else { if (log.isDebugEnabled()) { log.debug("Image " + info + " is embedded as a form later"); } //Don't load image at this time, just put a form placeholder in the stream PSResource form = getDocumentHandler().getFormForImage(info.getOriginalURI()); PSImageUtils.drawForm(form, info, rect, getGenerator()); } }
/** {@inheritDoc} */ public Image loadImage(ImageInfo info, Map hints, ImageSessionContext session) throws ImageException, IOException { Source src = session.needSource(info.getOriginalURI()); ImageInputStream imgStream = ImageUtil.needImageInputStream(src); SeekableStream seekStream = new ImageInputStreamSeekableStreamAdapter(imgStream); try { org.apache.xmlgraphics.image.codec.tiff.TIFFImage img = new org.apache.xmlgraphics.image.codec.tiff.TIFFImage( seekStream, null, 0); // TODO: This may ignore ICC Profiles stored in TIFF images. return new ImageRendered(info, img, null); } catch (RuntimeException e) { throw new ImageException("Could not load image with internal TIFF codec", e); } }
/** {@inheritDoc} */ public Image loadImage(ImageInfo info, Map hints, ImageSessionContext session) throws ImageException, IOException { Source src = session.needSource(info.getOriginalURI()); ImageInputStream imgStream = ImageUtil.needImageInputStream(src); SeekableStream seekStream = new ImageInputStreamSeekableStreamAdapter(imgStream); PNGImageDecoder decoder = new PNGImageDecoder(seekStream, new PNGDecodeParam()); RenderedImage image = decoder.decodeAsRenderedImage(); // need transparency here? return new ImageRendered(info, image, null); }
/** {@inheritDoc} */ public void generateForm(RenderingContext context, Image image, PSImageFormResource form) throws IOException { PSRenderingContext psContext = (PSRenderingContext)context; PSGenerator gen = psContext.getGenerator(); ImageRendered imageRend = (ImageRendered)image; ImageInfo info = image.getInfo(); String imageDescription = info.getMimeType() + " " + info.getOriginalURI(); RenderedImage ri = imageRend.getRenderedImage(); FormGenerator formGen = new ImageFormGenerator( form.getName(), imageDescription, info.getSize().getDimensionPt(), ri, false); formGen.generate(gen); }
/** {@inheritDoc} */ protected void drawImage(Image image, Rectangle rect, RenderingContext context, boolean convert, Map additionalHints) throws IOException, ImageException { AFPRenderingContext afpContext = (AFPRenderingContext) context; AFPResourceInfo resourceInfo = AFPImageHandler.createResourceInformation( image.getInfo().getOriginalURI(), afpContext.getForeignAttributes()); //Check if the image is cached before processing it again if (afpContext.getResourceManager().isObjectCached(resourceInfo)) { AFPObjectAreaInfo areaInfo = AFPImageHandler.createObjectAreaInfo( afpContext.getPaintingState(), rect); afpContext.getResourceManager().includeCachedObject(resourceInfo, areaInfo); } else { super.drawImage(image, rect, context, convert, additionalHints); } }
/** {@inheritDoc} */ public void generateForm(RenderingContext context, Image image, PSImageFormResource form) throws IOException { PSRenderingContext psContext = (PSRenderingContext) context; PSGenerator gen = psContext.getGenerator(); ImageRawPNG png = (ImageRawPNG) image; ImageInfo info = image.getInfo(); String imageDescription = info.getMimeType() + " " + info.getOriginalURI(); ImageEncoder encoder = new ImageEncoderPNG(png); FormGenerator formGen = new ImageFormGenerator(form.getName(), imageDescription, info.getSize() .getDimensionPt(), info.getSize().getDimensionPx(), encoder, png.getColorSpace(), false); formGen.generate(gen); }
/** {@inheritDoc} */ public void generateForm(RenderingContext context, Image image, PSImageFormResource form) throws IOException { PSRenderingContext psContext = (PSRenderingContext)context; PSGenerator gen = psContext.getGenerator(); ImageRawCCITTFax ccitt = (ImageRawCCITTFax)image; ImageInfo info = image.getInfo(); String imageDescription = info.getMimeType() + " " + info.getOriginalURI(); ImageEncoder encoder = new ImageEncoderCCITTFax(ccitt); FormGenerator formGen = new ImageFormGenerator( form.getName(), imageDescription, info.getSize().getDimensionPt(), info.getSize().getDimensionPx(), encoder, ccitt.getColorSpace(), 1, false); formGen.generate(gen); }
/** {@inheritDoc} */ public void generateForm(RenderingContext context, Image image, PSImageFormResource form) throws IOException { PSRenderingContext psContext = (PSRenderingContext)context; PSGenerator gen = psContext.getGenerator(); ImageRawJPEG jpeg = (ImageRawJPEG)image; ImageInfo info = image.getInfo(); String imageDescription = info.getMimeType() + " " + info.getOriginalURI(); ImageEncoder encoder = new ImageEncoderJPEG(jpeg); FormGenerator formGen = new ImageFormGenerator( form.getName(), imageDescription, info.getSize().getDimensionPt(), info.getSize().getDimensionPx(), encoder, jpeg.getColorSpace(), jpeg.isInverted()); formGen.generate(gen); }
/** {@inheritDoc} */ @Override public void setup(PDFDocument doc) { RenderedImage ri = getImage().getRenderedImage(); super.setup(doc); //Handle transparency mask if applicable ColorModel orgcm = ri.getColorModel(); if (orgcm.hasAlpha() && orgcm.getTransparency() == ColorModel.TRANSLUCENT) { doc.getProfile().verifyTransparencyAllowed(image.getInfo().getOriginalURI()); //TODO Implement code to combine image with background color if transparency is not //allowed (need BufferedImage support for that) Raster raster = GraphicsUtil.getAlphaRaster(ri); if (raster != null) { AlphaRasterImage alphaImage = new AlphaRasterImage("Mask:" + getKey(), raster); this.softMask = doc.addImage(null, alphaImage).makeReference(); } } }