rendered paste bodyimport java.awt.*;
import java.awt.image.*;
import java.util.*;
import java.util.zip.*;
import java.io.*;
public class PixelPacker {
private String file;
private int COMPRESSION_LEVEL;
public static void main(String args[]) {
try {
new PixelPacker(args[0]).pack();
} catch (Exception _ex) { ex.printStackTrace(); return; }
}
public PixelPacket(final String file, final int COMPRESSION_LEVEL) {
this.file = file;
this.COMPRESSION_LEVEL = COMPRESSION_LEVEL;
}
public void pack()
throws Exception {
// Read sprite sheet
FileInputStream in = new FileInputStream(file);
BufferedImage img = ImageIO.read(in);
// Store dimensions
final int w, h;
w = img.getWidth();
h = img.getHeight();
// Grab image data
PixelGrabber g = new PixelGrabber(img, 0, 0, w, h, false);
g.grabPixels();
pixels = (int[])g.getPixels();
// Make output streams
FileOutputStream out = new FileOutputStream("compressed.cmp");
ZipOutputStream zipOut = new ZipOutputStream(out);
zipOut.setLevel(compression);
// Generate header file
zipOut.putNextEntry(new ZipEntry(file));
byte[] header = (w + "x" + h).getBytes();
zipOut.write(header, 0, header.length);
// Generate sprite files
int buffer = new int[w * h * 3];
// Increment Y axis
for(int y = 0; y < h; y++) {
// Increment X axis
for(int x = 0; x < w; x++) {
}
}
}
}