Changeset 2207


Ignore:
Timestamp:
02/01/07 17:36:27 (13 years ago)
Author:
chris
Message:

MetadataNotebook:
New logic for opening files, independent of file extension.
Goes as follows: read in header bytes, if TIFF set TIFF flag
if not, TIFF flag is null, try to construct and openImage
with an Imagereader for all files. If openImage throws a
FormatException, check if the raw text of the file begins
with either "<?xml" or "<OME", otherwise quack loudly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/ome/notebook/MetadataPane.java

    r2206 r2207  
    351351        // TIFF file 
    352352        originalTIFF = file; 
    353  
    354         OMENode ome = null; 
    355  
    356         try { 
    357           ImageReader reader = new ImageReader(); 
    358           OMEXMLMetadataStore ms = new OMEXMLMetadataStore(); 
    359           // tell reader to write metadata as it's being 
    360           // parsed to an OMENode (DOM in memory) 
    361           reader.setMetadataStore(ms); 
    362           String id = file.getPath(); 
    363  
    364           int num = reader.getImageCount(id); 
    365           if (num > 0) { 
    366             // get middle image from the file 
    367             img = reader.openImage(id, num / 2); 
    368           } 
    369           else img = null; 
    370           int width = 50, height = 50; 
    371           thumb = ImageTools.scale(img, width, height, false); 
    372           ome = (OMENode) ms.getRoot(); 
    373         } 
    374         catch (Exception exc) { exc.printStackTrace(); } 
    375  
     353      } 
     354      else originalTIFF = null; 
     355 
     356      OMENode ome = null; 
     357 
     358      try { 
     359        ImageReader reader = new ImageReader(); 
     360        OMEXMLMetadataStore ms = new OMEXMLMetadataStore(); 
     361        // tell reader to write metadata as it's being 
     362        // parsed to an OMENode (DOM in memory) 
     363        reader.setMetadataStore(ms); 
     364        String id = file.getPath(); 
     365 
     366        int num = reader.getImageCount(id); 
     367        if (num > 0) { 
     368          // get middle image from the file 
     369          img = reader.openImage(id, num / 2); 
     370        } 
     371        else img = null; 
     372        int width = 50, height = 50; 
     373        thumb = ImageTools.scale(img, width, height, false); 
     374        ome = (OMENode) ms.getRoot(); 
    376375        setOMEXML(ome); 
    377376      } 
    378       else if (file.getPath().endsWith(".ome")) { 
    379                 // TIFF file 
    380         originalTIFF = null; 
    381  
    382         OMENode ome = null; 
    383  
    384         try { 
    385           ImageReader reader = new ImageReader(); 
    386           OMEXMLMetadataStore ms = new OMEXMLMetadataStore(); 
    387           // tell reader to write metadata as it's being 
    388           // parsed to an OMENode (DOM in memory) 
    389           reader.setMetadataStore(ms); 
    390           String id = file.getPath(); 
    391  
    392           img = reader.openImage(id, 0); // gets first image from the file 
    393           int width = 50, height = 50; 
    394           thumb = ImageTools.scale(img, width, height, false); 
    395           ome = (OMENode) ((OMEXMLMetadataStore) 
    396             reader.getMetadataStore(id)).getRoot(); 
    397           setOMEXML(ome); 
    398         } 
    399         catch (Exception exc) { exc.printStackTrace(); } 
    400 /* 
    401         String s = new String(header).trim(); 
    402         if (s.startsWith("<?xml") || s.startsWith("<OME")) { 
    403           // raw OME-XML 
    404           byte[] data = new byte[(int) file.length()]; 
    405           System.arraycopy(header, 0, data, 0, 8); 
    406           in.readFully(data, 8, data.length - 8); 
    407           in.close(); 
    408           setOMEXML(new String(data)); 
    409         } 
    410         else return false; 
    411 */ 
    412       } 
    413       else { 
    414         originalTIFF = null; 
     377      catch (FormatException exc) { 
    415378        img = null; 
    416379        thumb = null; 
     
    426389        else return false; 
    427390      } 
     391      catch (IOException exc) { exc.printStackTrace(); }; 
    428392 
    429393      currentFile = file; 
Note: See TracChangeset for help on using the changeset viewer.