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
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 implement
IntegerImage
.
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic 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
-
Field Details
-
angle
private double angle
-
-
Constructor Details
-
Shear
public Shear()
-
-
Method Details
-
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:
-
process
-
process
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:
-