Package org.xhtmlrenderer.resource

Examples of org.xhtmlrenderer.resource.ImageResource


        out.close();
        return out.toByteArray();
    }

    public ImageResource getImageResource(String uriStr) {
        ImageResource resource = null;
        if (ImageUtil.isEmbeddedBase64Image(uriStr)) {
            resource = loadEmbeddedBase64ImageResource(uriStr);
        } else {
            uriStr = resolveURI(uriStr);
            resource = (ImageResource) _imageCache.get(uriStr);
            if (resource == null) {
                InputStream is = resolveAndOpenStream(uriStr);
                if (is != null) {
                    try {
                        URI uri = new URI(uriStr);
                        if (uri.getPath() != null && uri.getPath().toLowerCase().endsWith(".pdf")) {
                            PdfReader reader = _outputDevice.getReader(uri);
                            PDFAsImage image = new PDFAsImage(uri);
                            Rectangle rect = reader.getPageSizeWithRotation(1);
                            image.setInitialWidth(rect.getWidth() * _outputDevice.getDotsPerPoint());
                            image.setInitialHeight(rect.getHeight() * _outputDevice.getDotsPerPoint());
                            resource = new ImageResource(uriStr, image);
                        } else {
                            Image image = Image.getInstance(readStream(is));
                            scaleToOutputResolution(image);
                            resource = new ImageResource(uriStr, new ITextFSImage(image));
                        }
                        _imageCache.put(uriStr, resource);
                    } catch (Exception e) {
                        XRLog.exception("Can't read image file; unexpected problem for URI '" + uriStr + "'", e);
                    } finally {
                        try {
                            is.close();
                        } catch (IOException e) {
                            // ignore
                        }
                    }
                }
            }

            if (resource != null) {
                FSImage image=resource.getImage();
                if (image instanceof ITextFSImage) {
                    image=(FSImage) ((ITextFSImage) resource.getImage()).clone();
                }
                resource = new ImageResource(resource.getImageUri(), image);
            } else {
                resource = new ImageResource(uriStr, null);
            }
        }
        return resource;
    }
View Full Code Here


    private ImageResource loadEmbeddedBase64ImageResource(final String uri) {
        try {
            byte[] buffer = ImageUtil.getEmbeddedBase64Image(uri);
            Image image = Image.getInstance(buffer);
            scaleToOutputResolution(image);
            return new ImageResource(null, new ITextFSImage(image));
        } catch (Exception e) {
            XRLog.exception("Can't read XHTML embedded image.", e);
        }
        return new ImageResource(null, null);
    }
View Full Code Here

    public CSSResource getCSSResource(String uri) {
        return new CSSResource(getInputStream(uri));
    }

    public ImageResource getImageResource(String uri) {
        ImageResource ir = null;
        if (ImageUtil.isEmbeddedBase64Image(uri)) {
            ir = loadEmbeddedBase64ImageResource(uri);
        } else {
            uri = resolveURI(uri);
            ir = (ImageResource) _imageCache.get(uri);
            // TODO: check that cached image is still valid
            if (ir == null) {
                InputStream is = getInputStream(uri);
                if (is != null) {
                    try {
                        ir = createImageResource(uri, is);
                        if (_imageCache.size() >= _imageCacheCapacity) {
                            // prevent the cache from growing too big
                            ImageResource old = (ImageResource) _imageCache
                                    .remove(_imageCache.keySet().iterator().next());
                            ((SWTFSImage) old.getImage()).getImage().dispose();
                        }
                        _imageCache.put(uri, ir);
                    } catch (SWTException e) {
                        XRLog.exception(
                                "Can't read image file; unexpected problem for URI '"
                                + uri + "'", e);
                    } finally {
                        try {
                            is.close();
                        } catch (IOException e) {
                            // swallow
                        }
                    }
                }
            }
            if (ir == null) {
                ir = new ImageResource(uri, null);
            }
        }
        return ir;
    }
View Full Code Here

     * not be loaded).
     *
     * @return An ImageResource containing the image.
     */
    protected ImageResource createImageResource(String uri, InputStream is) {
        return new ImageResource(uri, new SWTFSImage(new Image(_device, is), this, uri));
    }
View Full Code Here

    private ImageResource loadEmbeddedBase64ImageResource(final String uri) {
        byte[] image = ImageUtil.getEmbeddedBase64Image(uri);
        if (image != null) {
            return createImageResource(null, new ByteArrayInputStream(image));
        }
        return new ImageResource(null, null);
    }
View Full Code Here

    /**
     * Dispose all images in cache and clean the cache.
     */
    public void disposeCache() {
        for (Iterator iter = _imageCache.values().iterator(); iter.hasNext();) {
            ImageResource ir = (ImageResource) iter.next();
            ((SWTFSImage) ir.getImage()).getImage().dispose();
        }
        _imageCache.clear();
    }
View Full Code Here

   *
   * @param uri Location of the image source.
   * @return An ImageResource containing the image.
   */
  public ImageResource getImageResource(String uri) {
        ImageResource ir;
        uri = resolveURI(uri);
        ir = (ImageResource) _imageCache.get(uri);
        //TODO: check that cached image is still valid
        if (ir == null) {
            InputStream is = resolveAndOpenStream(uri);
View Full Code Here

   * @param img The image to package; may be null (for example, if image could not be loaded).
   *
   * @return An ImageResource containing the image.
   */
  protected ImageResource createImageResource(String uri, Image img) {
    return new ImageResource(uri, AWTFSImage.createImage(img));
  }
View Full Code Here

TOP

Related Classes of org.xhtmlrenderer.resource.ImageResource

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.