Changeset 3806


Ignore:
Timestamp:
03/12/08 12:12:19 (12 years ago)
Author:
melissa
Message:

Fixed bug with files that have an extra "garbage" plane.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/formats/in/AVIReader.java

    r3727 r3806  
    419419              size = in.readInt(); 
    420420              fcc = in.readString(4); 
    421               if (!(type.equals("LIST") && fcc.equals("rec "))) { 
     421              if (!(type.equals("LIST") && (fcc.equals("rec ") || 
     422                fcc.equals("movi")))) 
     423              { 
    422424                in.seek(spos); 
    423425              } 
     
    425427              spos = in.getFilePointer(); 
    426428              type = in.readString(4); 
    427               size = in.readInt(); 
     429              if (type.startsWith("ix")) { 
     430                size = in.readInt(); 
     431                in.skipBytes(size); 
     432                type = in.readString(4); 
     433                size = in.readInt(); 
     434              } 
     435              else { 
     436                size = in.readInt(); 
     437              } 
    428438 
    429439              while (type.substring(2).equals("db") || 
     
    557567      throw new FormatException("Unsupported compression : " + bmpCompression); 
    558568    } 
    559     b = buf; 
    560     buf = new byte[b.length * core.sizeC[0]]; 
    561     for (int i=0; i<b.length; i++) { 
    562       buf[i*core.sizeC[0]] = lut[0][b[i] & 0xff]; 
    563       buf[i*core.sizeC[0] + 1] = lut[1][b[i] & 0xff]; 
    564       buf[i*core.sizeC[0] + 2] = lut[2][b[i] & 0xff]; 
     569    if (lut != null) { 
     570      b = buf; 
     571      buf = new byte[b.length * core.sizeC[0]]; 
     572      for (int i=0; i<b.length; i++) { 
     573        buf[i*core.sizeC[0]] = lut[0][b[i] & 0xff]; 
     574        buf[i*core.sizeC[0] + 1] = lut[1][b[i] & 0xff]; 
     575        buf[i*core.sizeC[0] + 2] = lut[2][b[i] & 0xff]; 
     576      } 
    565577    } 
    566578    return buf; 
Note: See TracChangeset for help on using the changeset viewer.