Package com.day.image

Examples of com.day.image.Layer


        if (rendition == null) {
            log.warn("Rendition name {} was not available for asset {}. Skipping.", renditionName, asset);
            return;
        }

        Layer layer = null;
        try {
            layer = new Layer(rendition.getStream());

            layer = processLayer(layer, rendition, workflowSession, args);

            String mimetype = layer.getMimeType();
            double quality = mimetype.equals("image/gif") ? getQuality(MAX_GIF_QUALITY, qualityStr) : getQuality(1.0,
                    qualityStr);

            saveImage(asset, rendition, layer, mimetype, quality);
        } catch (IIOException e) {
            log.warn("Unable to load image layer from " + rendition.getPath(), e);
        } catch (IOException e) {
            log.warn("Unable to load image layer from " + rendition.getPath(), e);
        } finally {
            if (layer != null) {
                layer.dispose();
                layer = null;
            }
        }

    }
View Full Code Here


        int greenShift = Math.round(green * MAX_COLOR_VALUE);
        int blueShift = Math.round(blue * MAX_COLOR_VALUE);

        BufferedImage image = shift(layer.getImage(), redShift, greenShift, blueShift);

        Layer result = new Layer(image);
        return result;
    }
View Full Code Here

        log.debug("Transforming with [ {} ]", TYPE);

        float alpha = normalizeAlpha(properties.get(KEY_ALPHA, properties.get(KEY_ALPHA_ALIAS, 0.0)).floatValue());

        Color color = getColor(properties);
        Layer filter = new Layer(layer.getWidth(), layer.getHeight(), color);

        BufferedImage image = merge(layer.getImage(), filter.getImage(), alpha);
        Layer result = new Layer(image);
        return result;
    }
View Full Code Here

            if (layer.getHeight() == height && layer.getWidth() == width) {
                return layer;
            }

            Color matteColor = parseColor(backgroundColor, Color.BLACK);
            Layer newLayer = new Layer(width, height, matteColor);
            newLayer.setMimeType(rendition.getMimeType());

            int topAnchor;
            int leftAnchor;

            VerticalPosition vpos = VerticalPosition.valueOf(verticalPositionArgument);
            switch (vpos) {
            case bottom:
                topAnchor = newLayer.getHeight() - layer.getHeight();
                break;
            case middle:
                topAnchor = (newLayer.getHeight() - layer.getHeight()) / 2;
                break;
            default:
                topAnchor = 0;
                break;
            }

            HoritzonalPosition hpos = HoritzonalPosition.valueOf(horizontalPositionArgument);
            switch (hpos) {
            case right:
                leftAnchor = newLayer.getWidth() - layer.getWidth();
                break;
            case center:
                leftAnchor = (newLayer.getWidth() - layer.getWidth()) / 2;
                break;
            default:
                leftAnchor = 0;
                break;
            }
            newLayer.blit(layer, leftAnchor, topAnchor, layer.getWidth(), layer.getHeight(), 0, 0);
            return newLayer;
        } else {
            log.info("No dimension or background color specified. Skipping");
            return layer;
        }
View Full Code Here

    private Layer getLayer(String path, Session session) {
        if (path != null) {
            ResourceResolver resolver = getResourceResolver(session);
            Resource resource = resolver.getResource(path);
            if (resource != null) {
                Layer layer = resource.adaptTo(Layer.class);
                if (layer != null) {
                    return layer;
                } else {
                    logInvalidWatermark(path);
                }
View Full Code Here

    protected Layer processLayer(Layer layer, Rendition rendition, WorkflowSession workflowSession, String[] args) {
        final String watermarkPath = getValuesFromArgs(ARG_WATERMARK, args).size() > 0 ? getValuesFromArgs(
                ARG_WATERMARK, args).get(0) : null;

        if (watermarkPath != null) {
            Layer watermark = null;
            try {
                watermark = getLayer(watermarkPath, workflowSession.getSession());

                if (watermark != null) {
                    addWatermark(layer, watermark);
                }
            } finally {
                if (watermark != null) {
                    watermark.dispose();
                    watermark = null;
                }
            }
        } else {
            log.info("No watermark specified. Skipping.");
View Full Code Here

        final String transformName = PathInfoUtil.getSuffixSegment(request, 0);
        final NamedImageTransformer namedImageTransformer = this.namedImageTransformers.get(transformName);

        final Image image = this.resolveImage(request);
        final String mimeType = this.getMimeType(request, image);
        Layer layer = this.getLayer(image);
       
        // Transform the image
        layer = namedImageTransformer.transform(layer);

        final double quality = (mimeType.equals(MIME_TYPE_GIF) ? IMAGE_GIF_MAX_QUALITY : IMAGE_MAX_QUALITY);
        response.setContentType(mimeType);

        layer.write(mimeType, quality, response.getOutputStream());

        response.flushBuffer();
    }
View Full Code Here

     * @param image The Image to get the layer from
     * @return the image's Layer
     * @throws IOException
     */
    private Layer getLayer(final Image image) throws IOException {
        Layer layer = null;

        try {
            layer = image.getLayer(false, false, false);
        } catch (RepositoryException ex) {
            log.error("Could not create layer");
View Full Code Here

                new Font("Myriad Pro", 15 * scale, Font.BOLD),
                new Font("MyriadPro-Light", 18 * scale)};

        // load background image from docroot
        Component c = WCMUtils.getComponent(ctx.resource);
        Layer bg = ImageHelper.createLayer(c.getLocalResource("background.png"));

        // load additional image
        Image image = new Image(ctx.resource);
        image.setItemName(Image.NN_FILE, "image");
        image.setItemName(Image.PN_REFERENCE, "imageReference");
        Layer img = image.getLayer(false, false, false);
        if (img != null) {
            img.setX(bg.getWidth() - img.getWidth());
            img.setY(bg.getHeight() - img.getHeight());
            bg.merge(img);
        }

        // draw the title text (4 times bigger)
        Layer text = new Layer(1, 1, new Color(0x01ffffff, true));
        int y = 0;
        for (int i = 0; i < titles.length; i++) {
            if (i >= fonts.length) {
                break;
            }
            String txt = titles[i].toUpperCase();
            if (txt.length() > 0) {
                Rectangle2D extent = fonts[i].getTextExtent(0, 0, 0, 0, txt, Font.ALIGN_LEFT, 0, 0);
                text.setPaint(colors[i]);
                text.drawText(0, y, 0, 0, txt, fonts[i], Font.ALIGN_LEFT, 0, 0);
                y += extent.getHeight() + 4 * scale;
            }
        }
        text.resize(text.getWidth() / scale, text.getHeight() / scale);
        text.setY(paddingY);
        text.setX(paddingX);
        bg.merge(text);

        return bg;
    }
View Full Code Here

        Font subTitleFont = new Font("Tahoma", 7);
        int subTitleBase = 20;

        // load background image from docroot
        Component c = WCMUtils.getComponent(ctx.resource);
        Layer bg = ImageHelper.createLayer(c.getLocalResource("navimage_bg.jpg"));

        // draw the title text (4 times bigger)
        Rectangle2D titleExtent = titleFont.getTextExtent(0, 0, 0, 0, title, Font.ALIGN_LEFT, 0, 0);
        Rectangle2D subtitleExtent = subTitleFont.getTextExtent(0, 0, 0, 0, subtitle, Font.ALIGN_LEFT, 0, 0);
        // check if subtitleExtent is too width
        if ( subtitle.length() > 0 ) {
            int titleWidth = (int)titleExtent.getWidth() / scale;
            if ( subtitleExtent.getWidth() > titleWidth && subtitleExtent.getWidth() + 2 * paddingX > bg.getWidth() ) {
                int charWidth = (int)subtitleExtent.getWidth() / subtitle.length();
                int maxWidth = (bg.getWidth() > titleWidth + * paddingX ? bg.getWidth() - 2 * paddingX : titleWidth);
                int len = (maxWidth - ( 2 * charWidth) ) / charWidth;
                subtitle = subtitle.substring(0, len) + "...";
                subtitleExtent = subTitleFont.getTextExtent(0, 0, 0, 0, subtitle, Font.ALIGN_LEFT, 0, 0);
            }
        }
        int width = Math.max((int) titleExtent.getWidth(), (int) subtitleExtent.getWidth());

        Layer text = new Layer(width, (int) titleExtent.getHeight() + 40, new Color(0x01ffffff, true));
        text.setPaint(titleColor);
        text.drawText(0, titleBase, 0, 0, title, titleFont, Font.ALIGN_LEFT | Font.ALIGN_BASE, 0, 0);
        text.resize(text.getWidth() / scale, text.getHeight() / scale);
        text.setX(0);
        text.setY(0);

        if (subtitle.length() > 0) {
            // draw the subtitle normal sized
            text.setPaint(subtitleColor);
            text.drawText(0, subTitleBase, 0, 0, subtitle, subTitleFont, Font.ALIGN_LEFT | Font.ALIGN_BASE, 0, 0);
        }

        // and merge the layers
        text.setY(paddingY);
        text.setX(paddingX);
        text.setBackgroundColor(bgColor);
       
        int bgWidth = bg.getWidth();
        if ( text.getWidth() + 2 * paddingX > bgWidth ) {
            bgWidth = text.getWidth() + 2 * paddingX;
            bg.resize(bgWidth, bg.getHeight());
        }
        bg.merge(text);

        return bg;
View Full Code Here

TOP

Related Classes of com.day.image.Layer

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.