Class 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 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 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 sheared
      height - height of the image to be sheared
      angle - 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

      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 class Operation
      Throws:
      MissingParameterException - if any mandatory parameter was not given to the operation
      WrongParameterException - 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: