Changeset 3964


Ignore:
Timestamp:
04/22/08 11:49:21 (12 years ago)
Author:
allison
Message:

saveBytes method still does not work correctly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/OMERO Writer/src/loci/formats/ome/OMEROWriter.java

    r3946 r3964  
    2525package loci.formats.ome; 
    2626 
     27import java.awt.Image; 
    2728import java.io.*; 
    2829 
     
    4445 
    4546import loci.formats.MetadataStore; 
     47import loci.formats.MetadataRetrieve; 
    4648import ome.util.*; 
    4749 
     
    8183 
    8284/** 
    83  * Uploads images to an OME server. 
     85 * Uploads images to an OMERO server. 
    8486 * 
    8587 * <dl><dt><b>Source code:</b></dt> 
     
    145147 
    146148          private MetadataRetrieve metadata; 
    147            
    148            
    149           //  private Main         viewer; 
    150  
    151  
    152149           
    153150          private static RawFileStore    rawFileStore; 
     
    210207           
    211208 
    212            
    213           public void saveImage(java.awt.Image image, boolean last) 
    214             throws FormatException, IOException 
    215           { 
    216           } 
    217            
    218           public void saveBytes(byte[] bytes, boolean last) 
    219             throws FormatException, IOException 
    220           { 
    221                    
    222           } 
    223  
     209          public void saveImage(Image image, boolean last) 
     210              throws FormatException, IOException 
     211                  { 
     212                    saveImage(image, 0, last, last); 
     213                  } 
     214                 
     215                  /* @see loci.formats.IFormatWriter#saveImage(Image, int, boolean, boolean) */ 
     216                  public void saveImage(Image image, int series, boolean lastInSeries, 
     217                    boolean last) 
     218                    throws FormatException, IOException 
     219                  { 
     220                    byte[][] b = ImageTools.getPixelBytes(ImageTools.makeBuffered(image), 
     221                      !metadataRetrieve.getBigEndian(series).booleanValue()); 
     222                    for (int i=0; i<b.length; i++) { 
     223                      saveBytes(b[i], series, lastInSeries && (i == b.length - 1), 
     224                        last && (i == b.length - 1)); 
     225                    } 
     226                  } 
     227           
     228                public void saveBytes(byte[] bytes, int series, boolean lastInSeries, 
     229                         boolean last) 
     230                         throws FormatException, IOException 
     231                                  { 
     232                                    //if (!hasOMEROJava) throw new FormatException(NO_OMERO_JAVA); 
     233                                    if (currentId != null && credentials == null) { 
     234                                      // parse the ID string to get the server, user name and password 
     235                                    } 
     236                                     
     237                                  credentials.imageID = -1; 
     238                                     
     239                                     
     240                              try { 
     241                                                r.setVar("DATA_FACTORY_CLASS", "org.openmicroscopy.ds.DataFactory"); 
     242                                                r.exec("DATA_FACTORY_CLASS = Class.forName(DATA_FACTORY_CLASS)"); 
     243                                                r.setVar("PIXELS_FACTORY_CLASS", "org.openmicroscopy.is.PixelsFactory"); 
     244                                                r.exec("PIXELS_FACTORY_CLASS = Class.forName(PIXELS_FACTORY_CLASS)"); 
     245                                                r.setVar("IMPORT_MANAGER_CLASS", 
     246                                                  "org.openmicroscopy.ds.managers.ImportManager"); 
     247                                                r.exec("IMPORT_MANAGER_CLASS = Class.forName(IMPORT_MANAGER_CLASS)"); 
     248                                                r.exec("df = rs.getService(DATA_FACTORY_CLASS)"); 
     249                                                r.exec("im = rs.getService(IMPORT_MANAGER_CLASS)"); 
     250                                                r.exec("pf = rs.getService(PIXELS_FACTORY_CLASS)"); 
     251                                 
     252                                                r.setVar("ID", "id"); 
     253                                                r.setVar("EXPERIMENTER", "experimenter"); 
     254                                                r.exec("fields = new FieldsSpecification()"); 
     255                                                r.exec("fields.addWantedField(ID)"); 
     256                                                r.exec("fields.addWantedField(EXPERIMENTER)"); 
     257                                                r.exec("fields.addWantedField(EXPERIMENTER, ID)"); 
     258                                                r.exec("userState = df.getUserState(fields)"); 
     259                                                r.exec("exp = userState.getExperimenter()"); 
     260                                         
     261                                                r.setVar("zero", 0l); 
     262                                                r.setVar("omeis", omeis); 
     263                                                r.exec("repository = pf.findRepository(zero)"); 
     264                                                r.exec("repository.setImageServerURL(omeis)"); 
     265                                              } 
     266                                              catch (ReflectException e) { 
     267                                                throw new FormatException(e); 
     268                                              } 
     269                                         
     270                                              if (metadataRetrieve == null) { 
     271                                                throw new FormatException("Metadata store not specified."); 
     272                                          } 
     273                                             
     274                                     
     275                                    
     276                                    int x = metadataRetrieve.getPixelSizeX(series).intValue(); 
     277                                    int y = metadataRetrieve.getPixelSizeY(series).intValue(); 
     278                                    int z = metadataRetrieve.getPixelSizeZ(series).intValue(); 
     279                                    int c = metadataRetrieve.getPixelSizeC(series).intValue(); 
     280                                    int t = metadataRetrieve.getPixelSizeT(series).intValue(); 
     281                                    String order = metadataRetrieve.getDimensionOrder(series); 
     282                                    String pixelTypeString = metadataRetrieve.getPixelType(series); 
     283                                    int pixelType = FormatTools.pixelTypeFromString(pixelTypeString); 
     284                                    int bpp = FormatTools.getBytesPerPixel(pixelType); 
     285                                    boolean bigEndian = 
     286                                        metadataRetrieve.getBigEndian(series).booleanValue();  
     287                                     
     288                                     
     289                                     
     290                                    try { 
     291                                        r.exec("sessionKey = rc.getSessionKey()"); 
     292                                        r.exec("is = ImageServer.getHTTPImageServer(omeis, sessionKey)"); 
     293                                        if (credentials.imageID == -1) { 
     294                                                    r.setVar("x", x); 
     295                                                r.setVar("y", y); 
     296                                                r.setVar("z", z); 
     297                                                r.setVar("c", c); 
     298                                                r.setVar("t", t); 
     299                                                r.setVar("bpp", bpp); 
     300                                                r.setVar("bigEndian", bigEndian); 
     301                                                r.setVar("float", pixelTypeString.equals("float")); 
     302                                                r.setVar("pixelType", pixelTypeString); 
     303                                                r.exec("pixelsId = is.newPixels(x, y, z, c, t, bpp, bigEndian, float)"); 
     304                                                credentials.imageID = ((Long) r.getVar("pixelsId")).longValue(); 
     305                                              } 
     306                                          } 
     307                                          catch (ReflectException e) { 
     308                                             throw new FormatException(e); 
     309                                          } 
     310                                     
     311                } 
     312                 
    224313           
    225314          //methods done so far: 
     
    447536                    LogTools.println("Using server " + serverName + " as user " + username); 
    448537                  login(); 
    449                  //System.out.println(isValidLogin()); 
     538                 
    450539                   
    451540           
    452541      //create image uploader 
    453                 /*  
     542                 
    454543      OMEROWriter uploader = new OMEROWriter(); 
    455544      uploader.addStatusListener(new StatusListener() { 
     
    471560      reader.close(); 
    472561      uploader.close(); 
    473       */ 
     562       
    474563 } 
    475564} 
Note: See TracChangeset for help on using the changeset viewer.