Dimension size = null;
FileInputStream fis=new FileInputStream(input);
fis.skip(0x00019d91);
CountingInputStream cin=new CountingInputStream(fis);
ImageInputStream stream = ImageIO.createImageInputStream(cin);
ImageReader reader = null;
try {
Iterator<?> iter = ImageIO.getImageReaders(stream);
if (iter.hasNext()) {
reader = (ImageReader) iter.next();
} else {
System.err.println("reader not found");
reader = new DDSImageReaderSpi().createReaderInstance();
}
reader.setInput(stream, true, true);
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(2, 2, 0, 0);
if (mipmap == 0) {
size = new Dimension(reader.getWidth(0), reader.getHeight(0));
img = reader.read(0, param);
} else {
size = new Dimension(reader.getThumbnailWidth(0, mipmap - 1), reader.getThumbnailHeight(0, mipmap - 1));
img = reader.readThumbnail(0, mipmap - 1);
}
} finally {
if (reader != null) {
reader.dispose();
}
stream.close();
}
//}
if (img == null) {
System.err.println("no image");
return;
}
JFrame f = new JFrame();
f.setResizable(false);
ReaderTest comp = new ReaderTest(img);
comp.setPreferredSize(size);
f.add(comp);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.pack();
f.setVisible(true);
System.out.println(cin.getByteCount());
}