List of usage examples for com.liferay.portal.image ImageToolImpl scale
@Override
public RenderedImage scale(RenderedImage renderedImage, int maxHeight, int maxWidth)
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; }