Top Fields Constructors Methods
jogamp.opengl.util.pngj.chunks

public Class ChunkHelper

extends Object
Class Inheritance
Imports
java.io.ByteArrayInputStream, .ByteArrayOutputStream, .IOException, .InputStream, .OutputStream, java.util.ArrayList, .Iterator, .List, java.util.zip.Deflater, .DeflaterOutputStream, .Inflater, .InflaterInputStream, jogamp.opengl.util.pngj.PngHelperInternal, .PngjException

Field Summary

Modifier and TypeField and Description
public static final byte[]
public static final byte[]
public static final byte[]
public static final byte[]
public static final String
public static final String
private static final ThreadLocal<Deflater>
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
private static final ThreadLocal<Inflater>
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
public static final String
private static byte[]
public static final String
public static final String

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static final byte[]
compressBytes(final byte[] ori, final boolean compress)

public static byte[]
compressBytes(final byte[] ori, final int offset, final int len, final boolean compress)

public static final boolean

Returns:

true if "equivalent"
equivalent
(final PngChunk c1, final PngChunk c2)

MY adhoc criteria: two chunks are "equivalent" ("practically equal") if they have same id and (perhaps, if multiple are allowed) if the match also in some "internal key" (eg: key for string values, palette for sPLT, etc) Notice that the use of this is optional, and that the PNG standard allows Text chunks that have same key

public static List<PngChunk>
filterList(final List<PngChunk> target, final ChunkPredicate predicateKeep)

Returns only the chunks that "match" the predicate See also trimList()

public static Deflater
getDeflater()

thread-local deflater, just reset : this should be only used for short individual chunks decompression

public static Inflater
getInflater()

thread-local inflater, just reset : this should be only used for short individual chunks compression

public static boolean
isCritical(final String id)

critical chunk : first letter is uppercase

public static boolean
isPublic(final String id)

public chunk: second letter is uppercase

public static boolean
isSafeToCopy(final String id)

Safe to copy chunk: fourth letter is lower case

public static boolean
isText(final PngChunk c)

public static boolean
isUnknown(final PngChunk c)

"Unknown" just means that our chunk factory (even when it has been augmented by client code) did not recognize its id

public static boolean
maskMatch(final int v, final int mask)

public static int

Returns:

-1 if not found
posNullByte
(final byte[] b)

Finds position of null byte in array

public static boolean

Returns:

true/false
shouldLoad
(final String id, final ChunkLoadBehaviour behav)

Decides if a chunk should be loaded, according to a ChunkLoadBehaviour

private static void
shovelInToOut(final InputStream in, final OutputStream out)

Shovels all data from an input stream to an output stream.

public static byte[]
toBytes(final String x)

Converts to bytes using Latin1 (ISO-8859-1)

public static byte[]
toBytesUTF8(final String x)

Converts to bytes using UTF-8

public static String
toString(final byte[] x)

Converts to String using Latin1 (ISO-8859-1)

public static String
toString(final byte[] x, final int offset, final int len)

Converts to String using Latin1 (ISO-8859-1)

public static String
toStringUTF8(final byte[] x)

Converts to string using UTF-8

public static String
toStringUTF8(final byte[] x, final int offset, final int len)

Converts to string using UTF-8

public static int
trimList(final List<PngChunk> target, final ChunkPredicate predicateRemove)

Remove (in place) the chunks that "match" the predicate See also filterList

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

b_IDATback to summary
public static final byte[] b_IDAT
b_IENDback to summary
public static final byte[] b_IEND
b_IHDRback to summary
public static final byte[] b_IHDR
b_PLTEback to summary
public static final byte[] b_PLTE
bKGDback to summary
public static final String bKGD
cHRMback to summary
public static final String cHRM
deflaterProviderback to summary
private static final ThreadLocal<Deflater> deflaterProvider
gAMAback to summary
public static final String gAMA
hISTback to summary
public static final String hIST
iCCPback to summary
public static final String iCCP
IDATback to summary
public static final String IDAT
IENDback to summary
public static final String IEND
IHDRback to summary
public static final String IHDR
inflaterProviderback to summary
private static final ThreadLocal<Inflater> inflaterProvider
iTXtback to summary
public static final String iTXt
pHYsback to summary
public static final String pHYs
PLTEback to summary
public static final String PLTE
sBITback to summary
public static final String sBIT
sPLTback to summary
public static final String sPLT
sRGBback to summary
public static final String sRGB
tEXtback to summary
public static final String tEXt
tIMEback to summary
public static final String tIME
tmpbufferback to summary
private static byte[] tmpbuffer
tRNSback to summary
public static final String tRNS
zTXtback to summary
public static final String zTXt

Constructor Detail

ChunkHelperback to summary
public ChunkHelper()

Method Detail

compressBytesback to summary
public static final byte[] compressBytes(final byte[] ori, final boolean compress)
compressBytesback to summary
public static byte[] compressBytes(final byte[] ori, final int offset, final int len, final boolean compress)
equivalentback to summary
public static final boolean equivalent(final PngChunk c1, final PngChunk c2)

MY adhoc criteria: two chunks are "equivalent" ("practically equal") if they have same id and (perhaps, if multiple are allowed) if the match also in some "internal key" (eg: key for string values, palette for sPLT, etc) Notice that the use of this is optional, and that the PNG standard allows Text chunks that have same key

Returns:boolean

true if "equivalent"

filterListback to summary
public static List<PngChunk> filterList(final List<PngChunk> target, final ChunkPredicate predicateKeep)

Returns only the chunks that "match" the predicate See also trimList()

getDeflaterback to summary
public static Deflater getDeflater()

thread-local deflater, just reset : this should be only used for short individual chunks decompression

getInflaterback to summary
public static Inflater getInflater()

thread-local inflater, just reset : this should be only used for short individual chunks compression

isCriticalback to summary
public static boolean isCritical(final String id)

critical chunk : first letter is uppercase

isPublicback to summary
public static boolean isPublic(final String id)

public chunk: second letter is uppercase

isSafeToCopyback to summary
public static boolean isSafeToCopy(final String id)

Safe to copy chunk: fourth letter is lower case

isTextback to summary
public static boolean isText(final PngChunk c)
isUnknownback to summary
public static boolean isUnknown(final PngChunk c)

"Unknown" just means that our chunk factory (even when it has been augmented by client code) did not recognize its id

maskMatchback to summary
public static boolean maskMatch(final int v, final int mask)
posNullByteback to summary
public static int posNullByte(final byte[] b)

Finds position of null byte in array

Returns:int

-1 if not found

shouldLoadback to summary
public static boolean shouldLoad(final String id, final ChunkLoadBehaviour behav)

Decides if a chunk should be loaded, according to a ChunkLoadBehaviour

Returns:boolean

true/false

shovelInToOutback to summary
private static void shovelInToOut(final InputStream in, final OutputStream out) throws IOException

Shovels all data from an input stream to an output stream.

toBytesback to summary
public static byte[] toBytes(final String x)

Converts to bytes using Latin1 (ISO-8859-1)

toBytesUTF8back to summary
public static byte[] toBytesUTF8(final String x)

Converts to bytes using UTF-8

toStringback to summary
public static String toString(final byte[] x)

Converts to String using Latin1 (ISO-8859-1)

toStringback to summary
public static String toString(final byte[] x, final int offset, final int len)

Converts to String using Latin1 (ISO-8859-1)

toStringUTF8back to summary
public static String toStringUTF8(final byte[] x)

Converts to string using UTF-8

toStringUTF8back to summary
public static String toStringUTF8(final byte[] x, final int offset, final int len)

Converts to string using UTF-8

trimListback to summary
public static int trimList(final List<PngChunk> target, final ChunkPredicate predicateRemove)

Remove (in place) the chunks that "match" the predicate See also filterList