package util; import java.util.zip.Inflater; import java.util.zip.DataFormatException; import java.io.ByteArrayOutputStream; import java.io.IOException; /** * A convenient class to decompress byte arrays. * It can be use with the CompressByteArray class to reduce network load. * * @author Dalmau */ public class DecompressByteArray { private byte[] aDecompresser; /** * Creates a decompressor for a byte array * @param adc the byte array to decompress */ public DecompressByteArray(byte[] adc) { aDecompresser = adc; } /** * Decompress the byte array * @return the decompressed byte array * @throws DataFormatException when the initial byte array is in an unknown fcompression format */ public byte[] decompress() throws DataFormatException { Inflater decompresseur = new Inflater(); decompresseur.setInput(aDecompresser); ByteArrayOutputStream decompresse = new ByteArrayOutputStream(aDecompresser.length); byte[] buf = new byte[1024]; while (!decompresseur.finished()) { int octetsLus = decompresseur.inflate(buf); decompresse.write(buf, 0, octetsLus); } // imageYUV contient l'image decompressee try { decompresse.close(); return decompresse.toByteArray(); } catch (IOException e) { return null; } } }