public interface BilevelImage extends GrayIntegerImage
BLACK
and WHITE
.
Those two constants are guaranteed to be 0
and 1
, although
you should not make any assumptions about what value any of the two constants has.
This is the type of image used for faxes.
Black and white photos are usually stored as grayscale images.
Apart from implementing PixelImage
- like all image data classes in JIU -
this interface is also an IntegerImage
(each sample is either 0 or 1) and
a GrayImage
(black and white are both grayscale values).
The combination of IntegerImage
and GrayImage
is GrayIntegerImage
,
which is the direct superinterface of this interface.
byte
value that stores eight horizontally neighbored bilevel
pixels in it (pixel and sample can be used interchangeably in the context of bilevel images
because there is only one sample per pixel).
The most significant bit of such a packed bit is defined to be the leftmost of the
eight pixels, the second-most significant bit is the pixel to the right of that leftmost pixel,
and so on. The least significant bit is the rightmost pixel.
If a bit is set, the corresponing pixel value is supposed to be white, otherwise black.
BilevelImage image = new MemoryBilevelImage(2000, 500); // now set all pixels in the first row to white for (int x = 0; x < image.getWidth(); x++) { image.putWhite(x, 0); } // put vertical stripes on the rest for (int y = 1; y < image.getHeight(); y++) { for (int x = 0; x < image.getWidth(); x++) { int sample; if ((x % 2) == 0) { sample = BilevelImage.BLACK; } else { sample = BilevelImage.WHITE; } image.putSample(x, y, sample); } }
Modifier and Type | Field and Description |
---|---|
static int |
BLACK
The value for a black pixel.
|
static int |
WHITE
The value for a white pixel.
|
Modifier and Type | Method and Description |
---|---|
void |
getPackedBytes(int x,
int y,
int numSamples,
byte[] dest,
int destOffset,
int destBitOffset)
Sets a number of samples in the argument array from this image.
|
void |
putPackedBytes(int x,
int y,
int numSamples,
byte[] src,
int srcOffset,
int srcBitOffset)
Sets a number of samples in the image from the argument array data.
|
isBlack, isWhite, putBlack, putWhite
clear, clear, getMaxSample, getSample, getSample, getSamples, putSample, putSample, putSamples
createCompatibleImage, createCopy, getAllocatedMemory, getBitsPerPixel, getHeight, getImageType, getNumChannels, getWidth
static final int BLACK
int
arguments for sample values.
You can rely on this value being either 0 or 1 (that way you can safely store it
in a byte or short).static final int WHITE
int
arguments for sample values.
You can rely on this value being either 0 or 1 (that way you can safely store it
in a byte or short).void getPackedBytes(int x, int y, int numSamples, byte[] dest, int destOffset, int destBitOffset)
x
- horizontal position of first sample of this image to ready
- vertical position of samples to be read from this imagenumSamples
- number of samples to be setdest
- array with packed pixels to which samples are copieddestOffset
- index into dest array of the first byte value to write sample values todestBitOffset
- index of first bit of dest[destOffset]
to write a sample to (0 is leftmost, 1 is second-leftmost up to 7, which is the rightmost)void putPackedBytes(int x, int y, int numSamples, byte[] src, int srcOffset, int srcBitOffset)
x
- horizontal position of first sample to be sety
- vertical position of samples to be setnumSamples
- number of samples to be setsrc
- array with packed pixels to be setsrcOffset
- index into src array of the first byte value to read sample values fromsrcBitOffset
- index of first bit of src[srcOffset]
to
read a sample from (0 is leftmost, 1 is second-leftmost up to 7, which is the rightmost)