52
52
import java .io .File ;
53
53
import java .io .IOException ;
54
54
import java .util .ArrayList ;
55
+ import java .util .Hashtable ;
55
56
import java .util .List ;
56
57
import java .util .Vector ;
57
58
60
61
import javax .swing .filechooser .FileFilter ;
61
62
62
63
import loci .common .DataTools ;
64
+ import loci .common .DebugTools ;
63
65
import loci .common .services .DependencyException ;
64
66
import loci .common .services .ServiceException ;
65
67
import loci .common .services .ServiceFactory ;
@@ -538,6 +540,7 @@ else if (FormatTools.isSigned(originalType)) {
538
540
}
539
541
540
542
Object info = imp .getProperty ("Info" );
543
+ Hashtable <String , Object > originalMetadata = new Hashtable <String , Object >();
541
544
if (info != null ) {
542
545
String imageInfo = info .toString ();
543
546
if (imageInfo != null ) {
@@ -548,14 +551,22 @@ else if (FormatTools.isSigned(originalType)) {
548
551
String key = line .substring (0 , eq ).trim ();
549
552
String value = line .substring (eq + 1 ).trim ();
550
553
554
+ originalMetadata .put (key , value );
555
+
551
556
if (key .endsWith ("BitsPerPixel" )) {
552
557
w .setValidBitsPerPixel (Integer .parseInt (value ));
553
- break ;
554
558
}
555
559
}
556
560
}
557
561
}
558
562
}
563
+ try {
564
+ service .populateOriginalMetadata (service .getOMEMetadata (store ), originalMetadata );
565
+ }
566
+ catch (ServiceException e ) {
567
+ IJ .log ("Could not populate original metadata" );
568
+ IJ .log (DebugTools .getStackTrace (e ));
569
+ }
559
570
560
571
// NB: Animation rate code copied from ij.plugin.Animator#doOptions().
561
572
final int rate ;
0 commit comments