Changeset 2305


Ignore:
Timestamp:
02/21/07 12:53:14 (13 years ago)
Author:
melissa
Message:

Fixed issues with uploading >8 bit and RGB data.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/plugins/LociUploader.java

    r2300 r2305  
    6767  private void promptForLogin() { 
    6868    GenericDialog prompt = new GenericDialog("Login to OME"); 
    69     prompt.addStringField("Server:   ", Prefs.get("uploader.server", ""), 120); 
    70     prompt.addStringField("Username: ", Prefs.get("uploader.user", ""), 120); 
    71     prompt.addStringField("Password: ", "", 120); 
     69    prompt.addStringField("Server:   ", Prefs.get("uploader.server", ""), 60); 
     70    prompt.addStringField("Username: ", Prefs.get("uploader.user", ""), 60); 
     71    prompt.addStringField("Password: ", "", 60); 
    7272 
    7373    ((TextField) prompt.getStringFields().get(2)).setEchoChar('*'); 
     
    143143          for (int j=0; j<s.length; j++) { 
    144144            byte[] a = DataTools.shortToBytes(s[j], little); 
    145             b[i*2] = a[0]; 
    146             b[i*2 + 1] = a[1]; 
     145            b[j*2] = a[0]; 
     146            b[j*2 + 1] = a[1]; 
    147147          } 
    148148          pixels.add(b); 
    149149        } 
    150150        else if (pix instanceof int[]) { 
    151           int[] j = (int[]) pix; 
    152           int channels = is.getProcessor(i+1) instanceof ColorProcessor ? 3 : 1; 
    153           byte[] b = new byte[j.length * channels]; 
    154           for (int k=0; k<j.length; k++) { 
    155             byte[] a = DataTools.intToBytes(j[k], little); 
    156             b[k*3] = a[0]; 
    157             b[k*3 + 1] = a[1]; 
    158             b[k*3 + 2] = a[2]; 
    159           } 
    160           pixels.add(b); 
     151          if (is.getProcessor(i+1) instanceof ColorProcessor) { 
     152            byte[][] rgb = new byte[3][((int[]) pix).length]; 
     153            ((ColorProcessor) is.getProcessor(i+1)).getRGB(rgb[0],  
     154              rgb[1], rgb[2]); 
     155            int channels = store.getSizeC(null).intValue(); 
     156            if (channels > 3) channels = 3; 
     157            for (int j=0; j<channels; j++) { 
     158              pixels.add(rgb[j]); 
     159            } 
     160          } 
     161          else { 
     162            int[] p = (int[]) pix; 
     163            byte[] b = new byte[4 * p.length]; 
     164            for (int j=0; j<p.length; j++) { 
     165              byte[] a = DataTools.intToBytes(p[j], little); 
     166              for (int k=0; k<a.length; k++) { 
     167                b[j*a.length + k] = a[k]; 
     168              } 
     169            } 
     170          } 
    161171        } 
    162172        else if (pix instanceof float[]) { 
     
    166176            int k = Float.floatToIntBits(f[j]); 
    167177            byte[] a = DataTools.intToBytes(k, little); 
    168             b[i*4] = a[0]; 
    169             b[i*4 + 1] = a[1]; 
    170             b[i*4 + 2] = a[2]; 
    171             b[i*4 + 3] = a[3]; 
     178            b[j*4] = a[0]; 
     179            b[j*4 + 1] = a[1]; 
     180            b[j*4 + 2] = a[2]; 
     181            b[j*4 + 3] = a[3]; 
    172182          } 
    173183          pixels.add(b); 
     
    187197    catch (UploadException e) { 
    188198      IJ.error("Upload failed:\n" + e); 
     199      e.printStackTrace(); 
    189200    } 
    190201  } 
Note: See TracChangeset for help on using the changeset viewer.