Example usage for com.liferay.portal.kernel.image ImageToolUtil scale

List of usage examples for com.liferay.portal.kernel.image ImageToolUtil scale

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.image ImageToolUtil scale.

Prototype

public static RenderedImage scale(RenderedImage renderedImage, int maxHeight, int maxWidth) 

Source Link

Document

Returns the scaled image based on the maximum height and width given while preserving the aspect ratio.

Usage

From source file:com.idetronic.subur.service.impl.AuthorLocalServiceImpl.java

License:Open Source License

public Author updatePortrait(long authorId, byte[] bytes) throws PortalException, SystemException {

    Author author = authorPersistence.findByPrimaryKey(authorId);

    long imageMaxSize = Long.valueOf(PortletProps.get("author.image.max.size"));

    if ((imageMaxSize > 0) && ((bytes == null) || (bytes.length > imageMaxSize))) {

        throw new UserPortraitSizeException();
    }/*from w  w w  . j  a  v a  2  s. c o  m*/

    long portraitId = author.getPortraitId();

    if (portraitId <= 0) {
        portraitId = counterLocalService.increment();

        author.setPortraitId(portraitId);
    }

    try {
        ImageBag imageBag = ImageToolUtil.read(bytes);

        RenderedImage renderedImage = imageBag.getRenderedImage();

        if (renderedImage == null) {
            throw new UserPortraitTypeException();
        }
        int maxHeight = Integer.valueOf(PortletProps.get("author.image.max.height"));
        int maxWidth = Integer.valueOf(PortletProps.get("author.image.max.width"));
        renderedImage = ImageToolUtil.scale(renderedImage, maxHeight, maxWidth);

        String contentType = imageBag.getType();

        imageLocalService.updateImage(portraitId, ImageToolUtil.getBytes(renderedImage, contentType));
    } catch (IOException ioe) {
        throw new ImageSizeException(ioe);
    }
    authorPersistence.update(author);

    return author;
}

From source file:com.inikah.slayer.service.impl.PhotoLocalServiceImpl.java

License:Open Source License

private void minifyPhoto(Image image, long thumbnailId, float newWidth) {
    ImageBag imageBag = null;//  w  ww .ja v  a  2  s  .c  o  m
    try {
        imageBag = ImageToolUtil.read(image.getTextObj());
    } catch (IOException e) {
        e.printStackTrace();
    }
    if (Validator.isNull(imageBag))
        return;

    RenderedImage renderedImage = imageBag.getRenderedImage();

    float reduceBy = (newWidth / (float) image.getWidth());

    long height = Math.round(image.getHeight() * reduceBy);
    long width = Math.round(image.getWidth() * reduceBy);
    renderedImage = ImageToolUtil.scale(renderedImage, (int) height, (int) width);

    byte[] bytes = null;
    try {
        bytes = ImageToolUtil.getBytes(renderedImage, image.getType());
    } catch (IOException e) {
        e.printStackTrace();
    }

    if (Validator.isNotNull(bytes)) {
        try {
            imageLocalService.updateImage(thumbnailId, bytes);
        } catch (PortalException e) {
            e.printStackTrace();
        } catch (SystemException e) {
            e.printStackTrace();
        }
    }
}

From source file:com.liferay.adaptive.media.image.internal.scaler.AMDefaultImageScaler.java

License:Open Source License

@Override
public AMImageScaledImage scaleImage(FileVersion fileVersion,
        AMImageConfigurationEntry amImageConfigurationEntry) {

    try {/*from  w  w  w.  j  a  va2  s .  c o m*/
        RenderedImage renderedImage = _tiffOrientationTransformer.transform(() -> _getInputStream(fileVersion));

        Map<String, String> properties = amImageConfigurationEntry.getProperties();

        int maxHeight = GetterUtil.getInteger(properties.get("max-height"));
        int maxWidth = GetterUtil.getInteger(properties.get("max-width"));

        RenderedImage scaledRenderedImage = ImageToolUtil.scale(renderedImage, maxHeight, maxWidth);

        return new AMImageScaledImageImpl(
                RenderedImageUtil.getRenderedImageContentStream(scaledRenderedImage, fileVersion.getMimeType()),
                scaledRenderedImage.getHeight(), scaledRenderedImage.getWidth());
    } catch (IOException | PortalException e) {
        StringBundler sb = new StringBundler(4);

        sb.append("Unable to scale file entry ");
        sb.append(fileVersion.getFileEntryId());
        sb.append(" to match adaptive media configuration ");
        sb.append(amImageConfigurationEntry.getUUID());

        throw new AMRuntimeException.IOException(sb.toString(), e);
    }
}

From source file:com.liferay.adaptive.media.image.internal.util.ImageProcessor.java

License:Open Source License

public RenderedImage scaleImage(FileVersion fileVersion,
        AdaptiveMediaImageConfigurationEntry configurationEntry) {

    try {/* w w  w .ja  v a 2s . co  m*/
        RenderedImage renderedImage = _tiffOrientationTransformer.transform(() -> _getInputStream(fileVersion));

        Map<String, String> properties = configurationEntry.getProperties();

        int maxHeight = GetterUtil.getInteger(properties.get("max-height"));
        int maxWidth = GetterUtil.getInteger(properties.get("max-width"));

        return ImageToolUtil.scale(renderedImage, maxHeight, maxWidth);
    } catch (PortalException pe) {
        throw new AdaptiveMediaRuntimeException.IOException(pe);
    }
}

From source file:com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl.java

License:Open Source License

public void updateSmallImage(long smallImageId, long largeImageId) throws PortalException, SystemException {

    try {// w w  w  .  jav  a  2 s .  co  m
        RenderedImage renderedImage = null;

        Image largeImage = imageLocalService.getImage(largeImageId);

        byte[] bytes = largeImage.getTextObj();
        String contentType = largeImage.getType();

        if (bytes != null) {
            ImageBag imageBag = ImageToolUtil.read(bytes);

            renderedImage = imageBag.getRenderedImage();

            //validate(bytes);
        }

        if (renderedImage != null) {
            int height = PrefsPropsUtil.getInteger(PropsKeys.DL_FILE_ENTRY_THUMBNAIL_MAX_HEIGHT);
            int width = PrefsPropsUtil.getInteger(PropsKeys.DL_FILE_ENTRY_THUMBNAIL_MAX_WIDTH);

            RenderedImage thumbnailRenderedImage = ImageToolUtil.scale(renderedImage, height, width);

            imageLocalService.updateImage(smallImageId,
                    ImageToolUtil.getBytes(thumbnailRenderedImage, contentType));
        }
    } catch (IOException ioe) {
        throw new ImageSizeException(ioe);
    }
}

From source file:com.liferay.portlet.documentlibrary.util.DLPreviewableProcessor.java

License:Open Source License

protected void storeThumbnailImage(FileVersion fileVersion, RenderedImage renderedImage, int index)
        throws Exception {

    if (!isThumbnailEnabled(index) || hasThumbnail(fileVersion, index)) {
        return;/*from w w w  . ja v  a2  s  .  c  o m*/
    }

    String type = getThumbnailType(fileVersion);

    String maxHeightPropsKey = PropsKeys.DL_FILE_ENTRY_THUMBNAIL_MAX_HEIGHT;
    String maxWidthPropsKey = PropsKeys.DL_FILE_ENTRY_THUMBNAIL_MAX_WIDTH;

    if (index == THUMBNAIL_INDEX_CUSTOM_1) {
        maxHeightPropsKey = PropsKeys.DL_FILE_ENTRY_THUMBNAIL_CUSTOM_1_MAX_HEIGHT;
        maxWidthPropsKey = PropsKeys.DL_FILE_ENTRY_THUMBNAIL_CUSTOM_1_MAX_WIDTH;
    } else if (index == THUMBNAIL_INDEX_CUSTOM_2) {
        maxHeightPropsKey = PropsKeys.DL_FILE_ENTRY_THUMBNAIL_CUSTOM_2_MAX_HEIGHT;
        maxWidthPropsKey = PropsKeys.DL_FILE_ENTRY_THUMBNAIL_CUSTOM_2_MAX_WIDTH;
    }

    RenderedImage thumbnailRenderedImage = ImageToolUtil.scale(renderedImage,
            PrefsPropsUtil.getInteger(maxHeightPropsKey), PrefsPropsUtil.getInteger(maxWidthPropsKey));

    byte[] bytes = ImageToolUtil.getBytes(thumbnailRenderedImage, type);

    File file = null;

    try {
        file = FileUtil.createTempFile(bytes);

        addFileToStore(fileVersion.getCompanyId(), THUMBNAIL_PATH,
                getThumbnailFilePath(fileVersion, type, index), file);
    } finally {
        FileUtil.delete(file);
    }
}

From source file:com.liferay.portlet.documentlibrary.util.PDFProcessorImpl.java

License:Open Source License

private void _generateImagesPB(FileVersion fileVersion, PDPage pdPage, int index) throws Exception {

    // Generate images

    RenderedImage renderedImage = pdPage.convertToImage(BufferedImage.TYPE_INT_RGB,
            PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_DPI);

    if (PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_HEIGHT != 0) {
        renderedImage = ImageToolUtil.scale(renderedImage, PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_WIDTH,
                PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_HEIGHT);
    } else {/*from ww w.  j ava 2  s  .com*/
        renderedImage = ImageToolUtil.scale(renderedImage,
                PropsValues.DL_FILE_ENTRY_PREVIEW_DOCUMENT_MAX_WIDTH);
    }

    // Store images

    if (index == 0) {
        storeThumbnailImages(fileVersion, renderedImage);
    } else {
        File tempFile = null;

        try {
            String tempFileId = DLUtil.getTempFileId(fileVersion.getFileEntryId(), fileVersion.getVersion());

            tempFile = getPreviewTempFile(tempFileId, index);

            tempFile.createNewFile();

            ImageIO.write(renderedImage, PREVIEW_TYPE, new FileOutputStream(tempFile));

            addFileToStore(fileVersion.getCompanyId(), PREVIEW_PATH, getPreviewFilePath(fileVersion, index),
                    tempFile);
        } finally {
            FileUtil.delete(tempFile);
        }
    }
}