/*
* Copyright (c) 2012. HappyDroids LLC, All rights reserved.
*/
package com.happydroids.droidtowers.utils;
import com.badlogic.gdx.files.FileHandle;
import org.apach3.commons.codec.binary.Base64;
import org.apach3.commons.codec.binary.StringUtils;
import org.apach3.commons.io.IOUtils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class GZIPUtils {
public static String compress(FileHandle pngFile) {
try {
if (!pngFile.exists()) {
return null;
}
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
gzipOutputStream.write(pngFile.readBytes());
gzipOutputStream.close();
return StringUtils.newStringUtf8(Base64.encodeBase64(byteArrayOutputStream.toByteArray(), true, true));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static byte[] decompress(String bytes) {
try {
GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(Base64.decodeBase64(bytes.getBytes())));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
IOUtils.copy(gzipInputStream, outputStream);
gzipInputStream.close();
return outputStream.toByteArray();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}