ImageIO.setUseCache(false);
iin = ImageIO.createImageInputStream((in));
iir.setInput(iin, true); //new MemoryCacheImageInputStream(in));
Raster ras=iir.readRaster(0,null);
//some images need this
if(iir.getRawImageType(0)==null || alternative==-1)
return nonRGBJPEGToRGBImage(data,w,h, decodeArray,pX,pY);