51 lines
1.6 KiB
Java
51 lines
1.6 KiB
Java
package ar.com.hjg.pngj;
|
|
|
|
/**
|
|
* General format-translated image line.
|
|
* <p>
|
|
* The methods from this interface provides translation from/to PNG raw
|
|
* unfiltered pixel data, for each image line. This
|
|
* doesn't make any assumptions of underlying storage.
|
|
* <p>
|
|
* The user of this library will not normally use this methods, but instead will
|
|
* cast to a more concrete implementation,
|
|
* as {@link ImageLineInt} or {@link ImageLineByte} with its methods for
|
|
* accessing the pixel values.
|
|
*/
|
|
public interface IImageLine {
|
|
|
|
/**
|
|
* Extract pixels from a raw unlfilterd PNG row. Len is the total amount of
|
|
* bytes in the array, including the first
|
|
* byte (filter type)
|
|
*
|
|
* Arguments offset and step (0 and 1 for non interlaced) are in PIXELS.
|
|
* It's guaranteed that when step==1 then
|
|
* offset=0
|
|
*
|
|
* Notice that when step!=1 the data is partial, this method will be called
|
|
* several times
|
|
*
|
|
* Warning: the data in array 'raw' starts at position 0 and has 'len'
|
|
* consecutive bytes. 'offset' and 'step' refer to
|
|
* the pixels in destination
|
|
*/
|
|
void readFromPngRaw(byte[] raw, int len, int offset, int step);
|
|
|
|
/**
|
|
* This is called when the read for the line has been completed (eg for
|
|
* interlaced). It's called exactly once for each
|
|
* line. This is provided in case the class needs to to some postprocessing.
|
|
*/
|
|
void endReadFromPngRaw();
|
|
|
|
/**
|
|
* Writes the line to a PNG raw byte array, in the unfiltered PNG format
|
|
* Notice that the first byte is the filter
|
|
* type, you should write it only if you know it.
|
|
*
|
|
*/
|
|
void writeToPngRaw(byte[] raw);
|
|
|
|
}
|