Changeset 5727 for branches/4.1


Ignore:
Timestamp:
12/03/09 09:24:43 (10 years ago)
Author:
melissa
Message:

Updated documentation and what's new for today's release.

Location:
branches/4.1/components/bio-formats/doc
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/4.1/components/bio-formats/doc/reader-guide.txt

    r5059 r5727  
    1515  not (or if there is no way of checking). 
    1616 
    17 String[] getUsedFiles() throws FormatException, IOException : 
     17String[] getSeriesUsedFiles() throws FormatException, IOException : 
    1818  You only need to override this if your format uses multiple files in a single 
    1919  dataset.  This method should return a list of all the files associated with 
    20   the given file name (i.e. every file needed to display the current dataset). 
     20  the given file name and the current series (i.e. every file needed to display 
     21  the current series). 
    2122  For an example of how this works, see loci.formats.in.PerkinElmerReader. 
    2223  It is recommended that the first line of this method be 
     
    3637  this method be "FormatTools.assertId(currentId, true, 1)" - this ensures that 
    3738  the file name is non-null. 
    38  
    39 BufferedImage openImage(int, int, int, int, int) throws FormatException, IOException : 
    40   Basically the same as openBytes, but returns a java.awt.image.BufferedImage 
    41   instead of a byte array.  In general, the easiest way to implement this is 
    42   by getting the corresponding byte array from openBytes, then returning 
    43   loci.formats.ImageTools.makeImage(byte[], int width, int height, int 
    44   numberOfChannels, boolean isInterleaved, int bytesPerPixel, boolean 
    45   isLittleEndian). It is recommended that the first line of this method be 
    46   "FormatTools.assertId(currentId, true, 1)" - this ensures that the file name 
    47   is non-null. 
    4839 
    4940protected void initFile(String) throws FormatException, IOException : 
     
    10293  instead of File.  See the javadoc for additional information. 
    10394 
    104 - loci.formats.DataTools provides a number of methods for converting bytes to 
     95- loci.common.DataTools provides a number of methods for converting bytes to 
    10596  shorts, ints, longs, etc.  It also supports reading most primitive types 
    10697  directly from a RandomAccessInputStream (or other DataInput implementation). 
    10798 
    10899- loci.formats.ImageTools provides several methods for manipulating 
    109   java.awt.image.BufferedImage objects.  In particular, it can create 
    110   BufferedImages from primitive type arrays, resize images, split RGB images 
    111   into 3 grayscale images, and so on.  Consult the source or javadoc for more 
    112   information. 
     100  primitive type arrays that represent images. Consult the source or javadoc 
     101  for more information. 
    113102 
    114103- If your reader relies on third-party code which may not be available to all 
    115104  users, it is strongly suggested that you access this code only through a 
    116   loci.formats.ReflectedUniverse object.  For an example of how this works, 
    117   see loci.formats.in.ZeissZVIReader. 
     105  loci.common.ReflectedUniverse object.  For an example of how this works, 
     106  see loci.formats.POITools. 
    118107 
    119108- Several common image compression types are supported through subclasses of 
    120   loci.formats.BaseCompressor.  These include JPEG, LZW, LZO, Base64, ZIP and 
     109  loci.formats.codec.BaseCodec.  These include JPEG, LZW, LZO, Base64, ZIP and 
    121110  RLE (PackBits). 
    122111 
     
    160149    -map                Specify file on disk to which name should be mapped. 
    161150 
    162 - If you wish to test using TestNG, loci.formats.test.ReaderTest provides 
     151- If you wish to test using TestNG, loci.tests.testng.FormatReaderTest provides 
    163152  several basic tests that work with all Bio-Formats readers.  See the 
    164   ReaderTest source code for additional information. 
     153  FormatReaderTest source code for additional information. 
    165154 
    166155- For more details, please look at the source code and javadocs.  Studying 
    167156  existing readers is probably the best way to get a feel for the API; I would 
    168157  recommend first looking at loci.formats.in.ImarisReader (this is the most 
    169   straightforward one).  loci.formats.in.LIFReader and ZeissZVIReader are also 
     158  straightforward one).  loci.formats.in.LIFReader and InCellReader are also 
    170159  good references that show off some of the nicer features of Bio-Formats. 
    171160 
  • branches/4.1/components/bio-formats/doc/samples-needed.txt

    r3637 r5727  
    5151  - any files acquired with most recent NIS Elements 
    5252 
    53 Olympus CellR (APL): 
    54   - any 
    55  
    5653Openlab LIFF: 
    5754  - 32 bit integer data 
     
    8279    used 
    8380 
    84 Zeiss ZVI: 
    85   - JPEG compressed 
    86   - tiled 
    87   - 2+ GB files 
  • branches/4.1/components/bio-formats/doc/using-bioformats.txt

    r5059 r5727  
    3333call setSeries(int) to change which series is being read. 
    3434 
    35 Raw pixels are always retrieved one plane at a time.  Planes can be returned 
    36 either in a byte array, or in a java.awt.image.BufferedImage (using 
    37 openBytes(int) and openImage(int) respectively).  It is entirely 
    38 up to you which method to use, as the pixel values are always identical. 
    39 In general, BufferedImages are more convenient for viewer applications and 
    40 applications that don't need to perform computations on pixel data, while byte 
    41 arrays are better for applications that perform pixel manipulations. 
     35Raw pixels are always retrieved one plane at a time.  Planes are returned 
     36as raw byte arrays, using one of the openBytes methods. 
    4237 
    4338Core metadata is the general term for anything that might be needed to work with 
     
    8479  convenience. Using them is similar to the java.io InputStream/OutputStream 
    8580  model: just layer whichever functionality you need by nesting the wrappers. 
     81  + BufferedImageReader extends IFormatReader, and allows pixel data to be 
     82    returned as BufferedImages instead of raw byte arrays. 
    8683  + FileStitcher extends IFormatReader, and uses advanced pattern 
    8784    matching heuristics to group files that belong to the same dataset. 
     
    9794  + DimensionSwapper extends IFormatReader, and provides an API 
    9895    for changing the dimension order of a file. 
    99 - ImageTools provides a number of methods for manipulating BufferedImages and 
    100   primitive type arrays.  In particular, there are methods to split and merge 
    101   channels in a BufferedImage/array, as well as converting to a specific data 
    102   type (e.g. convert short data to byte data). 
     96- ImageTools and loci.formats.gui.AWTImageTools provide a number of methods for 
     97  manipulating BufferedImages and primitive type arrays.  In particular, there 
     98  are methods to split and merge channels in a BufferedImage/array, as well as 
     99  converting to a specific data type (e.g. convert short data to byte data). 
    103100 
    104101                                Writing Files 
     
    126123file. 
    127124 
    128 A word of warning: IFormatWriter.saveImage(Image, boolean) accepts 
    129 generic java.awt.Images, and converts them to a BufferedImage under the hood. 
    130 The problem is that not all formats support all types of data (e.g. JPEG 
    131 does not support 16-bit data).  To prevent the possibility of corrupt or 
    132 invalid files, it is important to check that the Image you supply to saveImage() 
    133 is supported.  This can be done using the isSupportedType and getPixelTypes 
    134 methods of IFormatWriter. 
    135  
    136125Please see the Movie Stitcher (loci.apps.stitcher) for an example of how 
    137126to write files using Bio-Formats. 
     
    141130 
    142131Following is a list of known oddities. 
    143  
    144 o IFormatWriter accepts Image objects (not just BufferedImages); yet all 
    145   writers convert the Image to a BufferedImage.  You can still pass in a 
    146   BufferedImage, but you are free to pass in any Image object. 
    147  
    148 o All readers have another openBytes method that takes a pre-allocated byte 
    149   array, but there is no corresponding method for openImage.  The 
    150   rationale behind pre-allocated byte arrays is (1) array allocation takes 
    151   a relatively long time; and (2) pre-allocation avoids memory spikes on the 
    152   heap.  The reason there isn't something similar for openImage (i.e., a method 
    153   that takes a pre-allocated BufferedImage) is that it's kind of a pain to 
    154   implement, and no one has cared so far.  If you want this method, we can work 
    155   towards adding it. 
    156132 
    157133o Importing multi-file formats (Leica LEI, PerkinElmer, FV1000 OIF, ICS, and 
  • branches/4.1/components/bio-formats/doc/whats-new.txt

    r5625 r5727  
     14.1.1 (2009 December 3): 
     2* Fixed many bugs in popular file format readers 
     3 
    144.1 (2009 October 21): 
    25 
Note: See TracChangeset for help on using the changeset viewer.