private void decode64(ByteBuffer infile,LongArrayPointer a){
  byte[] nbitplanes=new byte[N03];
  byte[] tmagic=new byte[2];
  infile.get(tmagic);
  if (tmagic[0] != CODE_MAGIC[0] || tmagic[1] != CODE_MAGIC[1]) {
    throw new RuntimeException("Compression error");
  }
  this.nx=infile.getInt();
  this.ny=infile.getInt();
  this.scale=infile.getInt();
  long sumall=infile.getLong();
  infile.get(nbitplanes);
  dodecode64(infile,a,nbitplanes);
  a.set(0,sumall);
}

private void decode64 ( ByteBuffer infile , LongArrayPointer a ) { byte [ ] nbitplanes = new byte [ N03 ] ; byte [ ] tmagic = new byte [ 2 ] ; infile . get ( tmagic ) ; if ( tmagic [ 0 ] != CODE_MAGIC [ 0 ] || tmagic [ 1 ] != CODE_MAGIC [ 1 ] ) { throw new RuntimeException ( "Compression error" ) ; } this . nx = infile . getInt ( ) ; this . ny = infile . getInt ( ) ; this . scale = infile . getInt ( ) ; long sumall = infile . getLong ( ) ; infile . get ( nbitplanes ) ; dodecode64 ( infile , a , nbitplanes ) ; a . set ( 0 , sumall ) ; }
char * infile ; input file long * a ; address of output tiledimageoperation [ nx ] [ ny ] int * nx , * ny ; size of output tiledimageoperation int * scale ; scale factor for digitization
