public class Crop extends ImageToImageOperation
IntegerImage
.
Make sure to use zero-based parameters when defining the bounds with
setBounds(int, int, int, int)
!
PixelImage image = ...; // something implementing IntegerImage Crop crop = new Crop(); crop.setInputImage(image); crop.setBounds(10, 10, image.getWidth() - 9, image.getHeight() - 9); crop.process(); PixelImage croppedImage = crop.getOutputImage();
Modifier and Type | Field | Description |
---|---|---|
private int |
x1 |
|
private int |
x2 |
|
private int |
y1 |
|
private int |
y2 |
Constructor | Description |
---|---|
Crop() |
Modifier and Type | Method | Description |
---|---|---|
private void |
checkBounds() |
|
void |
process() |
This method does the actual work of the operation.
|
private void |
process(IntegerImage in,
IntegerImage out) |
|
void |
setBounds(int x1,
int y1,
int x2,
int y2) |
Specify the rectangular section of the original image that is to be
copied to the output image by this operation.
|
canInputAndOutputBeEqual, ensureImagesHaveSameResolution, ensureInputImageIsAvailable, ensureOutputImageResolution, getInputImage, getOutputImage, setCanInputAndOutputBeEqual, setInputImage, setOutputImage
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress
private void checkBounds() throws WrongParameterException
WrongParameterException
private void process(IntegerImage in, IntegerImage out)
public void process() throws MissingParameterException, WrongParameterException
Operation
process
in class Operation
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.)public void setBounds(int x1, int y1, int x2, int y2) throws IllegalArgumentException
process()
.
If any of the arguments provided here are outside of the input image's resolution
(e.g. x1 == 100 although the input image's width is only 60), a
WrongParameterException
will be thrown from
within process()
.
Note that the arguments to this method are zero-based, so the first column and row are 0, the second 1, the third 2, and so on. If you have a image that is 200 pixels wide and 100 pixels high, values from 0 to 199 are valid for the x arguments, and values from 0 to 99 are valid for the vertical direction.
x1
- horizontal position of upper left corner of the rectangley1
- vertical position of upper left corner of the rectanglex2
- horizontal position of lower right corner of the rectangley2
- vertical position of lower right corner of the rectangleIllegalArgumentException
- if any of the arguments is negative or x1 larger than x2 or y1 larger than y2