All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.coobird.thumbnailator.tasks.StreamThumbnailTask Maven / Gradle / Ivy

There is a newer version: [0.4, 0.5)
Show newest version
package net.coobird.thumbnailator.tasks;

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import net.coobird.thumbnailator.ThumbnailParameter;
import net.coobird.thumbnailator.tasks.io.InputStreamImageSource;
import net.coobird.thumbnailator.tasks.io.OutputStreamImageSink;

/**
 * A thumbnail generation task which streams data from an {@link InputStream}
 * to an {@link OutputStream}.
 * 

* This class does not close the {@link InputStream} and {@link OutputStream} * upon the completion of processing. *

* Only the first image obtained from the data stream will be read. Subsequent * images will be ignored. * * @author coobird * */ public class StreamThumbnailTask extends ThumbnailTask { /** * The {@link SourceSinkThumbnailTask} used to perform the task. */ private final SourceSinkThumbnailTask task; /** * Creates a {@link ThumbnailTask} in which streamed image data from the * specified {@link InputStream} is output to a specified * {@link OutputStream}, using the parameters provided in the specified * {@link ThumbnailParameter}. * * @param param The parameters to use to create the thumbnail. * @param is The {@link InputStream} from which to obtain image data. * @param os The {@link OutputStream} to send thumbnail data to. * @throws NullPointerException If the parameter is {@code null}. */ public StreamThumbnailTask(ThumbnailParameter param, InputStream is, OutputStream os) { super(param); this.task = new SourceSinkThumbnailTask( param, new InputStreamImageSource(is), new OutputStreamImageSink(os) ); } @Override public BufferedImage read() throws IOException { return task.read(); } @Override public void write(BufferedImage img) throws IOException { task.write(img); } @Override public ThumbnailParameter getParam() { return task.getParam(); } @Override public InputStream getSource() { return task.getSource(); } @Override public OutputStream getDestination() { return task.getDestination(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy