CropImageFilterpublic class CropImageFilter extends ImageFilter The CropImageFilter class crops a rectangular region of an source Image and
provides a source for a new image containing the extracted region. |
Fields Summary |
---|
private final int | XThe HEIGHT. | private final int | Y | private final int | WIDTH | private final int | HEIGHT |
Constructors Summary |
---|
public CropImageFilter(int x, int y, int w, int h)Instantiates a new CropImageFilter object with the specified rectangular
area.
X = x;
Y = y;
WIDTH = w;
HEIGHT = h;
|
Methods Summary |
---|
public void | setDimensions(int w, int h)
consumer.setDimensions(WIDTH, HEIGHT);
| public void | setPixels(int x, int y, int w, int h, java.awt.image.ColorModel model, int[] pixels, int off, int scansize)
if (x + w < X || X + WIDTH < x || y + h < Y || Y + HEIGHT < y) {
return;
}
int destX, destY, destWidth, destHeight, endX, endY, srcEndX, srcEndY;
int newOffset = off;
endX = X + WIDTH;
endY = Y + HEIGHT;
srcEndX = x + w;
srcEndY = y + h;
if (x <= X) {
destX = 0;
newOffset += X;
if (endX >= srcEndX) {
destWidth = srcEndX - X;
} else {
destWidth = WIDTH;
}
} else {
destX = x - X;
if (endX >= srcEndX) {
destWidth = w;
} else {
destWidth = endX - x;
}
}
if (y <= Y) {
newOffset += scansize * (Y - y);
destY = 0;
if (endY >= srcEndY) {
destHeight = srcEndY - Y;
} else {
destHeight = HEIGHT;
}
} else {
destY = y - Y;
if (endY >= srcEndY) {
destHeight = h;
} else {
destHeight = endY - y;
}
}
consumer.setPixels(destX, destY, destWidth, destHeight, model, pixels, newOffset, scansize);
| public void | setPixels(int x, int y, int w, int h, java.awt.image.ColorModel model, byte[] pixels, int off, int scansize)
if (x + w < X || X + WIDTH < x || y + h < Y || Y + HEIGHT < y) {
return;
}
int destX, destY, destWidth, destHeight, endX, endY, srcEndX, srcEndY;
int newOffset = off;
endX = X + WIDTH;
endY = Y + HEIGHT;
srcEndX = x + w;
srcEndY = y + h;
if (x <= X) {
destX = 0;
newOffset += X;
if (endX >= srcEndX) {
destWidth = srcEndX - X;
} else {
destWidth = WIDTH;
}
} else {
destX = x - X;
if (endX >= srcEndX) {
destWidth = w;
} else {
destWidth = endX - x;
}
}
if (y <= Y) {
newOffset += scansize * (Y - y);
destY = 0;
if (endY >= srcEndY) {
destHeight = srcEndY - Y;
} else {
destHeight = HEIGHT;
}
} else {
destY = y - Y;
if (endY >= srcEndY) {
destHeight = h;
} else {
destHeight = endY - y;
}
}
consumer.setPixels(destX, destY, destWidth, destHeight, model, pixels, newOffset, scansize);
| public void | setProperties(java.util.Hashtable props)
Hashtable<Object, Object> fprops;
if (props == null) {
fprops = new Hashtable<Object, Object>();
} else {
fprops = (Hashtable<Object, Object>)props.clone();
}
String propName = "Crop Filters"; //$NON-NLS-1$
String prop = "x=" + X + "; y=" + Y + "; width=" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
WIDTH + "; height=" + HEIGHT; //$NON-NLS-1$
Object o = fprops.get(propName);
if (o != null) {
if (o instanceof String) {
prop = (String)o + "; " + prop; //$NON-NLS-1$
} else {
prop = o.toString() + "; " + prop; //$NON-NLS-1$
}
}
fprops.put(propName, prop);
consumer.setProperties(fprops);
|
|