Package net.sourceforge.jiu.geometry
Class Shear
- java.lang.Object
-
- net.sourceforge.jiu.ops.Operation
-
- net.sourceforge.jiu.ops.ImageToImageOperation
-
- net.sourceforge.jiu.geometry.Shear
-
public class Shear extends ImageToImageOperation
Shears an image by a given angle. The angle must be larger than -90 and smaller than 90 degrees. Shearing works with all image types that implementIntegerImage
.Usage example
Shear shear = new Shear(); shear.setInputImage(image); // some IntegerImage shear.setAngle(5.0); shear.process(); PixelImage shearedImage = shear.getOutputImage();
This is an adjusted version of Jef Poskanzer's shearing code from his ACME package; see the API documentation page of ACME's Shear class.
- Author:
- Jef Poskanzer, Marco Schmidt
-
-
Field Summary
Fields Modifier and Type Field Description private double
angle
-
Constructor Summary
Constructors Constructor Description Shear()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static int
computeNewImageWidth(int oldImageWidth, int height, double angle)
For a given image width and shearing angle this method computes the width of the resulting image.double
getAngle()
Returns the angle associated with this shearing operation object.void
process()
This method does the actual work of the operation.private void
process(IntegerImage in, IntegerImage out)
void
setAngle(double newAngle)
Sets the angle to be used in the shearing operation to the argument value.-
Methods inherited from class net.sourceforge.jiu.ops.ImageToImageOperation
canInputAndOutputBeEqual, ensureImagesHaveSameResolution, ensureInputImageIsAvailable, ensureOutputImageResolution, getInputImage, getOutputImage, setCanInputAndOutputBeEqual, setInputImage, setOutputImage
-
Methods inherited from class net.sourceforge.jiu.ops.Operation
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress
-
-
-
-
Method Detail
-
computeNewImageWidth
public static int computeNewImageWidth(int oldImageWidth, int height, double angle)
For a given image width and shearing angle this method computes the width of the resulting image. This method is static so that it can be called easily from a GUI dialog or other objects that want to present the width of a sheared image.- Parameters:
oldImageWidth
- horizontal resolution of the image to be shearedheight
- height of the image to be shearedangle
- the angle to be used in the shearing operation- Returns:
- width of the sheared image
-
getAngle
public double getAngle()
Returns the angle associated with this shearing operation object.- Returns:
- shearing angle, between -90 and 90
- See Also:
setAngle(double)
-
process
private void process(IntegerImage in, IntegerImage out)
-
process
public void process() throws MissingParameterException, WrongParameterException
Description copied from class:Operation
This method does the actual work of the operation. It must be called after all parameters have been given to the operation object.- Overrides:
process
in classOperation
- Throws:
MissingParameterException
- if any mandatory parameter was not given to the operationWrongParameterException
- if at least one of the input parameters was not initialized appropriately (values out of the valid interval, etc.)
-
setAngle
public void setAngle(double newAngle)
Sets the angle to be used in the shearing operation to the argument value. The angle must be larger than -90.0 and smaller than 90.0.- Parameters:
newAngle
- the angle to be used in this operation- Throws:
IllegalArgumentException
- if the argument is not in the above mentioned interval- See Also:
getAngle()
-
-