Changeset 2006


Ignore:
Timestamp:
01/03/07 13:49:38 (13 years ago)
Author:
melissa
Message:

Fix to allow file name switching.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/out/QTWriter.java

    r2001 r2006  
    235235      out = new RandomAccessFile(id, "rw"); 
    236236      created = (int) System.currentTimeMillis(); 
    237       numWritten = 1; 
    238  
    239       // -- write the first header -- 
    240  
    241       DataTools.writeInt(out, 8, false); 
    242       DataTools.writeString(out, "wide"); 
    243  
     237      numWritten = 0; 
     238      numBytes = byteData.length * byteData[0].length; 
     239      byteCountOffset = 8; 
     240 
     241      if (out.length() == 0) { 
     242        // -- write the first header -- 
     243 
     244        DataTools.writeInt(out, 8, false); 
     245        DataTools.writeString(out, "wide"); 
     246       
     247        DataTools.writeInt(out, numBytes + 8, false); 
     248        DataTools.writeString(out, "mdat"); 
     249      } 
     250      else { 
     251        out.seek(byteCountOffset); 
     252        numBytes = (int) DataTools.read4UnsignedBytes(out, false) - 8; 
     253        numWritten = numBytes / (byteData[0].length * byteData.length); 
     254         
     255        numBytes += byteData.length * byteData[0].length; 
     256 
     257        out.seek(byteCountOffset); 
     258        DataTools.writeInt(out, numBytes + 8, false); 
     259 
     260        for (int i=0; i<numWritten; i++) { 
     261          offsets.add( 
     262            new Integer(16 + i * byteData.length * byteData[0].length)); 
     263        } 
     264 
     265        out.seek(out.length());  
     266      } 
     267       
    244268      // -- write the first plane of pixel data (mdat) -- 
    245269 
    246       numBytes = byteData[0].length * byteData.length; 
    247  
    248       byteCountOffset = out.getFilePointer(); 
    249       DataTools.writeInt(out, numBytes + 8, false); 
    250       DataTools.writeString(out, "mdat"); 
     270      offsets.add(new Integer((int) out.length())); 
     271       
     272      numWritten++; 
    251273 
    252274      for (int i=0; i<byteData.length; i++) { 
    253275        out.write(byteData[i]); 
    254276      } 
    255  
    256       offsets.add(new Integer(16)); 
    257277    } 
    258278    else { 
Note: See TracChangeset for help on using the changeset viewer.