Skip to content
Snippets Groups Projects
Commit b1ee6c36 authored by brinn's avatar brinn
Browse files

add: IStreamingImageTransformer and factory

improve: javadoc of IImageTransformer

SVN: 22553
parent 6ef55139
No related branches found
No related tags found
No related merge requests found
...@@ -19,15 +19,17 @@ package ch.systemsx.cisd.base.image; ...@@ -19,15 +19,17 @@ package ch.systemsx.cisd.base.image;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
/** /**
* Interface for classes which can transform images. The transformation depends only some parameters * Interface for classes which can transform images. The transformation depends only on some
* and an image as input. * parameters and an image as input.
* *
* @author Franz-Josef Elmer * @author Franz-Josef Elmer
*/ */
public interface IImageTransformer public interface IImageTransformer
{ {
/** /**
* Transforms the specified image. The transformation should change the input image. * Transforms the specified image. The transformation must <i>not</i> change the input image.
*
* @return The transformed image.
*/ */
public BufferedImage transform(BufferedImage image); public BufferedImage transform(BufferedImage image);
} }
/*
* Copyright 2011 ETH Zuerich, CISD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ch.systemsx.cisd.base.image;
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.io.OutputStream;
import ch.systemsx.cisd.base.image.IImageTransformer;
/**
* Interface for classes which can transform images in a streaming mode. The transformation depends
* only on some parameters and an image as stream of bytes.
*
* @author Bernd Rinn
*/
public interface IStreamingImageTransformer extends IImageTransformer
{
/**
* Transforms the image provided as the <var>input</var> stream.
*
* @return The transformed image.
*/
public BufferedImage transform(InputStream input);
/**
* Transforms the image provided as the <var>input</var> stream.
*
* @return The transformed image as a byte array that constitutes a PNG file.
*/
public byte[] transformToPNG(InputStream input);
/**
* Transforms the image provided as the <var>input</var> stream. Writes the transformed PNG file
* to the <var>output</var> stream.
*/
public void transformToPNGStream(InputStream input, OutputStream output);
}
/*
* Copyright 2011 ETH Zuerich, CISD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ch.systemsx.cisd.base.image;
import ch.systemsx.cisd.base.image.IImageTransformerFactory;
/**
* Factory creating an {@link IStreamingImageTransformer}. The parameters of the transformer should
* be stored as serializable attributes of concrete implementations of this interface.
*
* @author Bernd Rinn
*/
public interface IStreamingImageTransformerFactory extends IImageTransformerFactory
{
/**
* Creates a transformer object based on the attributes of the factory.
*/
public IStreamingImageTransformer createTransformer();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment