Class PredictorAlgorithm
java.lang.Object
org.apache.pdfbox.pdmodel.graphics.predictor.PredictorAlgorithm
Implements different PNG predictor algorithms that is used in PDF files.
- Version:
- $Revision: 1.4 $
- Author:
- xylifyx@yahoo.co.uk
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
aboveLeftPixel
(byte[] buf, int offset, int dy, int x) Get the above-left pixel from the buffer.int
abovePixel
(byte[] buf, int offset, int dy, int x) Get the above pixel from the buffer.void
checkBufsiz
(byte[] src, byte[] dest) check that buffer sizes matches width,height,bpp.void
decode
(byte[] src, byte[] dest) decode a byte array full of image data using the filter that this object implements.abstract void
decodeLine
(byte[] src, byte[] dest, int srcDy, int srcOffset, int destDy, int destOffset) decode line of pixel data in src from src_offset and width*bpp bytes forward, put the decoded bytes into dest.void
encode
(byte[] src, byte[] dest) encode a byte array full of image data using the filter that this object implements.abstract void
encodeLine
(byte[] src, byte[] dest, int srcDy, int srcOffset, int destDy, int destOffset) encode line of pixel data in src from srcOffset and width*bpp bytes forward, put the decoded bytes into dest.int
getBpp()
static PredictorAlgorithm
getFilter
(int predictor) int
int
getWidth()
int
leftPixel
(byte[] buf, int offset, int dy, int x) Get the left pixel from the buffer.static void
Simple command line program to test the algorithm.void
setBpp
(int newBpp) void
setHeight
(int newHeight) void
setWidth
(int newWidth)
-
Constructor Details
-
PredictorAlgorithm
public PredictorAlgorithm()
-
-
Method Details
-
checkBufsiz
public void checkBufsiz(byte[] src, byte[] dest) check that buffer sizes matches width,height,bpp. This implementation is used by most of the filters, but not Uptimum.- Parameters:
src
- The source buffer.dest
- The destination buffer.
-
encodeLine
public abstract void encodeLine(byte[] src, byte[] dest, int srcDy, int srcOffset, int destDy, int destOffset) encode line of pixel data in src from srcOffset and width*bpp bytes forward, put the decoded bytes into dest.- Parameters:
src
- raw image datadest
- encoded datasrcDy
- byte offset between linessrcOffset
- beginning of line datadestDy
- byte offset between linesdestOffset
- beginning of line data
-
decodeLine
public abstract void decodeLine(byte[] src, byte[] dest, int srcDy, int srcOffset, int destDy, int destOffset) decode line of pixel data in src from src_offset and width*bpp bytes forward, put the decoded bytes into dest.- Parameters:
src
- encoded image datadest
- raw datasrcDy
- byte offset between linessrcOffset
- beginning of line datadestDy
- byte offset between linesdestOffset
- beginning of line data
-
main
Simple command line program to test the algorithm.- Parameters:
args
- The command line arguments.
-
leftPixel
public int leftPixel(byte[] buf, int offset, int dy, int x) Get the left pixel from the buffer.- Parameters:
buf
- The buffer.offset
- The offset into the buffer.dy
- The dy value.x
- The x value.- Returns:
- The left pixel.
-
abovePixel
public int abovePixel(byte[] buf, int offset, int dy, int x) Get the above pixel from the buffer.- Parameters:
buf
- The buffer.offset
- The offset into the buffer.dy
- The dy value.x
- The x value.- Returns:
- The above pixel.
-
aboveLeftPixel
public int aboveLeftPixel(byte[] buf, int offset, int dy, int x) Get the above-left pixel from the buffer.- Parameters:
buf
- The buffer.offset
- The offset into the buffer.dy
- The dy value.x
- The x value.- Returns:
- The above-left pixel.
-
getBpp
public int getBpp()- Returns:
- Returns the bpp.
-
setBpp
public void setBpp(int newBpp) - Parameters:
newBpp
- The bpp to set.
-
getHeight
public int getHeight()- Returns:
- Returns the height.
-
setHeight
public void setHeight(int newHeight) - Parameters:
newHeight
- The height to set.
-
getWidth
public int getWidth()- Returns:
- Returns the width.
-
setWidth
public void setWidth(int newWidth) - Parameters:
newWidth
- The width to set.
-
encode
public void encode(byte[] src, byte[] dest) encode a byte array full of image data using the filter that this object implements.- Parameters:
src
- bufferdest
- buffer
-
decode
public void decode(byte[] src, byte[] dest) decode a byte array full of image data using the filter that this object implements.- Parameters:
src
- bufferdest
- buffer
-
getFilter
- Parameters:
predictor
-- 1 No prediction (the default value)
- 2 TIFF Predictor 2
- 10 PNG prediction (on encoding, PNG None on all rows)
- 11 PNG prediction (on encoding, PNG Sub on all rows)
- 12 PNG prediction (on encoding, PNG Up on all rows)
- 13 PNG prediction (on encoding, PNG Average on all rows)
- 14 PNG prediction (on encoding, PNG Paeth on all rows)
- 15 PNG prediction (on encoding, PNG optimum)
- Returns:
- The predictor class based on the predictor code.
-