Example usage for com.liferay.portal.image ImageToolImpl scale

List of usage examples for com.liferay.portal.image ImageToolImpl scale

Introduction

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

Prototype

@Override
    public RenderedImage scale(RenderedImage renderedImage, int maxHeight, int maxWidth) 

Source Link

Usage

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

License:Open Source License

protected int decodeVideo(IVideoResampler iVideoResampler, IVideoPicture inputIVideoPicture,
        IVideoPicture resampledIVideoPicture, IPacket inputIPacket, IPacket outputIPacket,
        IStreamCoder inputIStreamCoder, IStreamCoder outputIStreamCoder, IContainer outputIContainer,
        File thumbnailFile, String thumbnailExtension, int thumbnailHeight, int thumbnailWidth,
        long timeStampOffset) throws Exception {

    int offset = 0;

    boolean stopDecoding = false;

    while (offset < inputIPacket.getSize()) {
        int value = inputIStreamCoder.decodeVideo(inputIVideoPicture, inputIPacket, offset);

        if (value <= 0) {
            return value;
        }// w w w. j ava  2s. c o m

        updateVideoTimeStamp(inputIVideoPicture, timeStampOffset);

        offset += value;

        // Workaround for FFmpeg bug. See
        // http://comments.gmane.org/gmane.comp.video.ffmpeg.devel/135657

        ICodec.ID iCodecID = inputIStreamCoder.getCodecID();

        if (iCodecID.equals(ICodec.ID.CODEC_ID_MJPEG)) {
            stopDecoding = true;
        }

        if (!inputIVideoPicture.isComplete()) {
            if (stopDecoding) {
                return 1;
            } else {
                continue;
            }
        }

        if (thumbnailFile != null) {
            BufferedImage bufferedImage = null;

            if (_converterFactoryType == null) {
                _converterFactoryType = ConverterFactory
                        .findRegisteredConverter(ConverterFactory.XUGGLER_BGR_24);
            }

            if (_converterFactoryType == null) {
                throw new UnsupportedOperationException(
                        "No converter found for " + ConverterFactory.XUGGLER_BGR_24);
            }

            if (_videoIConverter == null) {
                _videoIConverter = ConverterFactory.createConverter(_converterFactoryType.getDescriptor(),
                        inputIVideoPicture);
            }

            bufferedImage = _videoIConverter.toImage(inputIVideoPicture);

            thumbnailFile.createNewFile();

            ImageToolImpl imageToolImpl = ImageToolImpl.getInstance();

            RenderedImage renderedImage = imageToolImpl.scale(bufferedImage, thumbnailHeight, thumbnailWidth);

            ImageIO.write(renderedImage, thumbnailExtension, new FileOutputStream(thumbnailFile));

            return DECODE_VIDEO_THUMBNAIL;
        }

        if ((outputIStreamCoder != null) && (outputIContainer != null)) {
            IVideoPicture outputIVideoPicture = resampleVideo(iVideoResampler, inputIVideoPicture,
                    resampledIVideoPicture);

            outputIVideoPicture.setQuality(0);

            encodeVideo(outputIStreamCoder, outputIVideoPicture, outputIPacket, outputIContainer);
        }

        if (stopDecoding) {
            break;
        }
    }

    return 1;
}