This repository has been archived by the owner on Mar 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
/
CHANGELOG.txt
2087 lines (1829 loc) · 92.9 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Icy 2.0.3.0 - 31/10/2019
------------------------
Application
* Canvas:
- faster and smaller memory footprint for screenshot for simple 2D image
* VTK:
- fixed colormap alpha restoration for 3D VTK canvas.
* Loader / Bio-Formats:
- fixed tile image loading.
- fixed duplicated data when opening several sequences at once.
- minor tweak to avoid using cache when not needed (better performance).
- minor change on data pre-fetch strategy.
* replaced micro character by 'u' to avoid incorrect display on non UTF-16 softwares
* updated online bug report to make it compliant with new web report.
* small fix in ROI table sorter.
Developer
- fixed MANIFEST.MF file containing an invalid character which was making Eclipse to crash.
- small tweak in XMLUtil.loadDocument(..) methods.
Icy 2.0.2.0 - 30/08/2019
------------------------
Application
* Loader:
- empty pre-fetch tasks on Sequence close.
* VTK:
- correct colormap alpha channel loading for IcyCanvas3D
* Search:
- general improvements on search engine (support +/- operator on keyword).
- switched online search to the new web interface
Developer
* fixed ROIUtil.convertToSequence(..) method to correctly generate labeled image.
Icy 2.0.1.0 - 12/08/2019
------------------------
Application
* Loader:
- fixed empty (black) image when opening multi-series Sequence (shared importer was closed)
- limited number of importer (reduce memory usage when the group contains many files)
* ImageCache:
- removed temporal images from the cache to not waste memory
- tweaked EHCache data expiration settings
- minor fix in GUI refresh
* Sequence:
- added simple data prefetch for faster initial data loading
- added getFilename(t, z, c) to get file path for image at given position when Sequence was loaded from multiple files
* added global layer enable/disable action (shift + L)
* fixed native library patching for Java 12 or above
* VTK:
- better error reporting
- minor tweak on VTK native library loading
Icy 2.0.0.0 - 12/04/2019
------------------------
Application
* new image cache engine.
* new packaging for easier installation on OSX system.
* GUI:
- added new Icy 'virtual mode' button to force the image cache engine to be used for all opened / created images.
- memory monitor now display image cache load level.
- Icy shows 'virtual mode' in title when image cache engine is forced ON.
- improved 'General' and 'Canvas' preferences presentation.
- added image cache settings in 'General preferences' section.
- added informations on image cache at startup.
- fixed position of Series selection dialog
* Loader:
- added lazy data loading for faster Sequence loading operation.
- improved preview display refresh.
* ROI:
- added 'ROI to Square' conversion.
- added 'ROI to Circle' conversion.
- small changes / improvements on ROI tasks GUI
* Viewer:
- timelaps are now in 'repeat' playback mode by default
- added 'SPACE' key shortcut to play/pause timelaps playback
* better background processing of some basic sequence operations ('Duplicate', 'Convert RGB', 'Convert Gray', 'Crop'...)
* minor speed improvement on application start
* added new splash screens
* many other small changes, tweaks, fixes and refactoring
Developer
* IcyBufferedImage:
- many changes to add image cache support.
- added lazy data loading support (for faster Sequence loading operation)
- added isVolatile() / setVolatile(..) method to enable/disable image caching.
- added isDataInitialized() / isDataLoaded().. methods.
- many others changes.
* Sequence:
- added isVolatile() / setVolatile(..) method to enable/disable image caching.
- added setDataXY(..) method (need to use it for image caching)
- changed the way channel bounds are updated (as data can be loaded on demand).
* SequenceUtil:
- fixed getSubSequence(...) method to work with volatile images.
- extractSlice(..) and extractFrame(..) now correctly duplicate original images data (should have been the case).
- minor fix on colormap update in utilities methods.
* Loader:
- added 'forceVolatile' parameter on some methods to force image caching.
- fixed possible Importer leak on error.
* Bio-Formats importer:
- fixed possible bugs during downscaled image/data loading
* ROIUtil:
- added convertToPoint(..), convertToEllipse(..) and convertToRectangle(..) methods
* DataIterator:
- updated to be compatible with volatile images.
* VtkUtil:
- minor change in getBinaryImageData(vtkPolyData, ...) method
* added FileUtil.getDrive(path) method
* added IcyFrame.getBorder() method
* fixed last ROIs objects retention when removing ROIS from an image while keeping the image open.
* added EHCache library.
Icy 1.9.10.0 - 19/11/2018
-------------------------
Application
* ROI:
- fixed 3D VTK display for ROI2DPoint and ROI3DPoint
- tweaks for faster retrieve of default property value
* Saver:
- FPS is automatically determined from metadata (AVI format)
- added time interval field for easier FPS calculation (AVI format)
* Plugin: minor fix about plugin installation notification
* Network: audit methods cannot lock anymore Icy launch process.
* Minor fix on possible exception with the Clipboard.
* Other minors changes or fixes.
Developer
* IcyBufferedImage:
- fixed possible out of bounds operation with getDataInterpolated(..)
- minors changes to prepare volatile raster
* Sequence:
- fixed possible out of bounds operation with getDataInterpolated(..)
- use metadata to retrieve dimension information when we can't get them from data (just for X, Y and C dimension).
* Loader: prepared async loading method (not yet complete)
* VtkUtil: renamed getArray(..) to getJavaArray(..)
Icy 1.9.9.1 - 28/09/2018
------------------------
Application
* fixed java version checking for HTTPS compatibility
Icy 1.9.9.0 - 27/09/2018
------------------------
Application
* Loader:
- added series grouping when 'grouping' in enabled in Loader dialog
- added groupSeries(..) method to group similar series in an image
* Sequence: fixed series index reset after saving an image
* ROI:
- fixed 3D VTK display (correctly handling specific Z and T position of the ROI)
- fixed ROI Mass Center computation for single point ROI
* VtkCanvas:
- fixed layers refresh on position change
- fixed/better implementation of layers visibility
* Network:
- added warning message for HTTPS compatibility with the future web site
- fixed HTTPS support for future web site (when java version ok)
- replaced automatic redirection by manual (and safer) redirection
- better error handling in general
Developer
* Sequence: added getDataInterpolated(t, z, c, y, x) method
* IcyBufferedImage: added getDataInterpolate(x,y,c) method
* Loader: added groupSeries(..) method to group similar series in an image
* Line2DIterator / Line3DIterator: added forceLastPoint parameter.
* VtkUtil:
- added getJavaArray(vtkDataArray) method
- added getPolyDataFromDataSet(vtkDataSet) method
- added getBooleanMaskFromBinaryImage(vtkImageData..) method
Icy 1.9.8.1 - 01/08/2018
------------------------
Application
* Loader:
- better colormap preservation on grouped image opening.
- fixed tile image loading on grouped image opening.
* Removed IRC chat (not really used and to avoid bot spam)
* Fixed minor issue with preferences saving (asking for restart everytime)
Icy 1.9.8.0 - 20/07/2018
------------------------
Application
* Loader:
- fixed time position (timestamp) in metadata when loading sub part of sequence
- fixed a small bug in setting panel (couldn't change 'loading type' in some situation)
- fixed minor bug with possible invalid metadata when stitching was used.
- stitching disabled when 'loading type' is set to 'separate' (better implementation)
* Minor fix to update plugin processing (incorrect message report)
Developer
* Sequence:
- better metadata initialization
- added getPosition() method for fast XYZ position retrieving
- added getPositionT() / getTimeStamp() methods
- added getPositionTOffset(..) method
- added setPositionT() / setTimeStamp(..) methods
- added setPositionTOffset(..) method
* MetaDataUtil:
- added getPositionT(..) / getTimeStamp(..) methods
- changed getTimePosition(..) by getPositionTOffset(..) methods
- added setPositionT(..) / setTimeStamp(..) methods
- added setPositionTOffset(..) methods
* SequenceUtil:
- added convertPoint(..) methods for easy coordinate conversion between 2 Sequence objects
- added convertRectangle(..) methods for easy region conversion between 2 Sequence objects
* ROIUtil:
- rewrote adjustToSequence(..) method (better implementation).
* VtkUtil:
- added getROIFromBinaryImage(..) method to convert VTK binary image to ROI
- renamed method polyDataToImageDate(..) to getBinaryImageData(..)
- added getTransform(..) method
- renamed method objToMesh(..) to getSurfaceFromOBJ(..)
Icy 1.9.7.0 - 29/05/2018
------------------------
Application
* Several fixes and improvements on multi file loading
* Fixed updater to keep it compatible with Java 6
Icy 1.9.6.2 - 23/05/2018
------------------------
Application
* Fixed launcher settings to be compatible with Java 10
Icy 1.9.6.1 - 23/05/2018
------------------------
Application
* Fixed / improved image preview refresh in Loader dialog.
* Minor change in frame / component visibility on opening.
* Other minor fixes.
Icy 1.9.6.0 - 18/05/2018
------------------------
Application
* Many changes and improvements with multi-file image loading:
- better meta data handling
- preview supported
- automatic Stitching
- compatible with Importer interface
* We can now see plugin JAR file location and online help directly from the 'Plugin details' panel.
* Fixed issues with Java 10 on OSX (ImageJ error) and Windows (Launcher error).
* Output log can now be saved in file
* Minor change on memory information display
* Some other minor fixed and changes
* Documentation fixes
Developer
* Loader:
- reworked getSequenceFileImporters(..) methods to be more generic
- moved file grouping in separate class.
- added new 'load(...)' methods for partial load and display of Sequence from a group of file.
- added new 'loadSequence(..)' method for partial Sequence load from a group of file.
- added 'internalLoadGroup(..)' methods for partial Sequence load from a file group
- Sequence now keep a reference on used Importer for loading, the Imported is closed when Sequence is unloaded from memory.
* LociImporterPlugin:
- added automatic Stitching
- added Metadata level selection using 'flags' in open(..) method
- reverted 'groupFiles' property back to true by default
- implemented getPixelsByTile(..) method with region loading support
- added region loading support to getImageByTile(..) method
- added sub resolution support to getImage(IFormatReader, ...) method
- added sub resolution support to getPixelsInternal(IFormatReader, ...) methods
- added sub resolution support to getImageInternal(IFormatReader, ...) methods
* AbstractImageProvider:
- replaced getImageByTile(..) by getPixelsByTile(..) and the method now support region loading.
* SequenceFileGroupImporter:
- added closeInternalsImporters() method
- minor fix on getImage(..) (sizeX and sizeY could be wrong)
- minor fix on getThumbnail(..)
* BooleanMask2D:
- minor fix in getContourPointsxxx(..) methods
- changed the way we detect incompatible dimension on Union and Intersection operation
* ROI2DShape:
- minor fix on computeBounds2D()
- minor fix on getBooleanMask(..)
* VtkUtil:
- added getPolyDataFromPoints(..) method
- added polyDataToImageData(..) method
- added transformPolyData(..) method
- added objToMesh(..) method
- added objToImageData(..) method
* Array1DUtil:
- added copyRect(...) method for easier 'rectangular' copy
* ClassUtil:
- added getJarPath(Class) method
* Sequence:
- tweaked getOverlays(Class) method
- added getSelectedROISet(Class) method
- added getSelectedROIs(Class roiClass, sorted, wantReadOnly) method
- added imageProvider field (this is the importer, will be used later)
* LUT/IcyColorMap:
- minor fix on copyFrom(..) method
- minor fix on setAlphaToOpaque(..) method
* ImageUtil: added getTileList(Rectangle region, ...) method
* added GeomUtil class (utilities for 'Geom' classes)
* SeriesSelectionDialog: now use SequenceIdImporter instead of SequenceFileImporter importer.
* SystemUtil:
- getJavaVersionAsNumber() now returns JAVA version as major numbers (6.0xx, 7.0xx, 8.0xx, 9.0xx, ...)
* added caching preferences (not yet used)
* OMEUtil:
- added getNonNegativeInteger(int) method
* PluginDescriptor:
- better information recovering for bundled plugin.
- added getPluginJarPath() method
* prepared new Web interface
Icy 1.9.5.1 - 27/11/2017
------------------------
Application:
* fixed ImageJ issue on last OSX preventing Icy from starting.
* Search: 'Actionable' bundled plugins are not visible in search results.
Developer:
* added added Sequence.getROIs(Class roiClass, boolean sorted) method
* minor tweak/fix in MetaDataUtil.keepSingleSerie(..)
Icy 1.9.5.0 - 03/11/2017
------------------------
Application:
* Fixed some java 9 issues.
* ROI: copy/paste operation now takes care of sequence sub resolution / crop.
* fixed minor issue with Substance library with Java 9.
* better sequence naming on partial loading (sub region).
* fixed small bug in task submission resulting in better responsiveness of some task (as the search result).
* others minors changes and tweaks.
Developer:
* ROIUtil:
- fixed scale(..) operation on ROI2DRectShape type.
- added adjustToSequence(..) method to adjust a ROI depending the Sequence resolution and position.
* BooleanMask2D: 2D downscale() method now use 2 pixels for true by default.
* BooleanMask3D: 3D downscale() method now use 4 pixels for true by default.
* ImageProvider: added isResolutionAvailable(..) method
* AbstractImageProvider: added basic isResolutionAvailable(..) implementation
* Canvas2D:
- re-introduced old CanvasView.getImage() for backward compatibility
- CanvasView.getImage() renamed to CanvasView.getImageAsTiles()
* Search API: some changes to prepare for new Web search interface
* added WebInterface class to prepare future Web interface communication
* StringUtil: added split() method
Icy 1.9.4.1 - 30/08/2017
------------------------
Application:
* Histogram: added export to XLS (or CSV)
* Loader: fixed small issue in Sequence naming.
* Bio-Formats importer: better preservation of original filename
* others minors changes and tweaks.
Developer:
* Histogram: added getCSVFormattedData() method
* XLSUtil: added setFromCSV(..) method
* SaveDialog: added chooseFileForResult(..) methods
Icy 1.9.4.0 - 11/08/2017
------------------------
Application:
- minors fixes and tweaks.
Developer:
* ROI2DArea / BooleanMask2D:
- added upscale() method for 2x up scaling.
- added downscale() method for 2x down scaling.
* ROI3DArea / BooleanMask3D:
- added upscale() method for 2x up scaling.
- added upscale2D() method for 2x up scaling (2D only).
- added downscale() method for 2x down scaling.
- added downscale2D() method for 2x down scaling (2D only).
* ROI:
- getProperty(..) / setProperty(..) property name is not anymore case sensitive.
* ROIUtil:
- added scale(ROI, ...) method (only work for ROI2DShape and ROI3DShape)
- added getUpscaled(..) method for 2x up scaled ROI.
- added getDownscaled(..) method for 2x down scaled ROI.
* Loader: fixed a minor bug on region image loading.
* Saver: fixed "origin" informations on saving operation
* Sequence: added resetOriginInformation() method
Icy 1.9.3.2 - 12/07/2017
------------------------
Application:
* GUI: removed 'show all' button from search result panel (useless).
* Loader:
- fixed multi series opening (available only with defaults load options)
- fixed an issue with tile loading in Bio-Formats importer
- better report of incorrect java version for importer
* Canvas2D: fixed issue on refreshing empty sequence (regression)
Developer:
* ROI: added getProperty(..) and setProperty(..) method to get/set arbitrary properties (String format).
* ROI3D/4D/5DStack: safer for multi-threaded operations.
* Plugin: added prepareLibrary(..) method to prepare native library loading
* Better color map preservation for multi channel image creation.
Icy 1.9.3.0 - 30/06/2017
------------------------
* modified image rendering in Canvas2D to improve update and rendering speed with large image.
* fixed error detection on download for 0 byte files.
* new informative message for plugin requiring a new java version.
* fixed 'multiple files' image saving which could failed in some case.
* minor change to memory panel.
* others minors fixes.
Icy 1.9.2.1 - 19/06/2017
------------------------
* Bio-formats importer:
- fixed sub resolution image loading when region is specified
* ROI2DPoint / ROI3DPoint:
- fixed getBoundxx() so it returns a non empty bounds (which is problematic for some calculation)
- fixed getBooleanMask(..) so it does return a mask when inclusive is true
* fixed regression on SequenceUtil.concatC(..) method.
* others minors changes or fixes.
Icy 1.9.2.0 - 06/06/2017
------------------------
Application:
* GUI: reworked Sequence and ROI menu tasks.
* Loader:
- we can now select image series directly from Loader dialog
- some bug fixes in preview refresh
- fixed Bio-Formats sub resolution loading
- fixed some bugs in Bio-Formats importer
- preserve series information when using 'open sequence region'
* fixed colormap opacity (regression)
* better colormap preservation of some Sequence operations.
* now support HTTPS connection for plugin repository.
* OutputPanel: we can now set a maximum line limit
* several bug fixes
Developer:
* fixed IcyBufferedImage.toBufferedImage(..) method (regression)
* switched to OMEXMLMetadata class from 'ome' package when possible (refactoring)
* MetadataUtil: lot of refactoring (due to OMEXMLMetadata class change mainly)
* OMEUtil: some refactoring (due to OMEXMLMetadata class change mainly)
* added ImageProvider.getOMEXMLMetadata() method to use the good OMEXMLMetadata class ('ome' package)
* VTKUtil: added getImageData(..) method
* MainInterface: added getROIRibbonTask() method
* IcyCanvas: protected listener operations (add/remove/fireEvent)
* minor fix on ROI2DLine.setLine(..) method
* ROIActions: added fillInterior and fillExterior actions
* Sequence: some refactoring
* minor change in function ClassUtil.getFile(String className)
* minor fix in FileUtil.getFileExtension(..) method
Icy 1.9.1.0 - 10/04/2017
------------------------
Application:
* ROI2DArea / ROI3DArea : fixed ROI double click shortcut.
* ROI2DPoint / ROI3DPoint: fixed auto select on point focus.
* Canvas2D: fixed image cache update and auto resizing on image size change.
* Loader: minor improvement to image preview display
* Updater: better local path handling.
Developer:
* Anchor2D: added COLOR, SELECTEDCOLOR and SELECTED property change event.
* added FileUtil.APPLICATION_DIRECTORY constant
* Metadata:
- fixed some retro compatibility issues with OMEXMLMetadata object.
- refactoring (switch from loci to ome OMEXMLMetadata structure when possible)
* fixed 'micro' character representation
Icy 1.9.0.1 - 03/04/2017
------------------------
Application:
* added new 3D ROI:
- 3D point type ROI.
- 3D line type ROI.
- 3D polyline type ROI.
- Ellipse 3D stack type ROI (available from stacking operation).
- Polygon 3D stack type ROI (available from stacking operation).
* ROI:
- more interaction with 3D VTK display (can move and modify the ROI)
- better and safer VTK rendering in general
- added 'to 3D stack' operation to convert 2D ROI to 3D Stack ROI.
- added 'to Mask' operation to convert shape ROI to Area ROI.
- added 'to Shape' operation to convert area ROI to Polygon ROI.
- added 'Separate' operation to separate unconnected object from an Area ROI.
- added 'ROI Cutter' operation to manually cut/separate ROI.
* ROI Panel:
- can now modify position / size of multiple ROI at same time.
- we can now quickly move view to a specific ROI location by double clicking on it (work in both way: from ROI panel or from the image).
- cleaned GUI:
- removed some ROI operations we usually do from keyboard (copy/paste, delete)
- moved some ROI operations to ROI band (load/save, boolean operator).
- XLS export button moved at the top of the ROI table.
* Image Loader (loader dialog):
- added Z and T range selection
- added channel selection
- added resolution level selection
- added 2D region (XY) selection
- improved preview
- better filename auto ordering
* Image Saver (saver dialog):
- removed Z and T range selection (better to do adjust range before)
- use big tiff when dataset is above 2GB
- setting are now preserved in XML preferences.
- image conversion is now automatically done when you use a save format which isn't compatible with the current image format.
A warning is displayed to inform the user about possible data loss.
* GUI:
- added a new tooltip to explain where is the main menu.
- added java 6 warning for OSX users.
- improved memory usage report in memory monitor.
- reorganized 'File & ROI tools' menu:
- added 'open region...' command to load a specific XY region of an image.
- re-organized the ROI creation actions.
- added many ROI operation actions (see the above 'ROI' and 'ROI Panel' sections).
* Canvas2D:
- reversed panning direction from keypad keys.
- image cache now use volatile accelerated image (image redraw should be much faster on some systems)
* VtkCanvas: improved overlay handling (should be a bit faster and safer)
* better metadata preservation on Sequence operation.
* sequence merging operations is now possible with Sequence of different type.
* ToolTipFrame: we can now clink on URL to open external browser.
* Updater: fixed local directory saving (it was saving in working folder instead of application folder)
* fixed wait for plugin update in headless mode.
* many bug fixes.
* several tweaks and optimizations.
* some code cleanup.
Developer:
* ROI:
- added 'group' field (will be use in future for 'group' ROI operation)
- added getLength(Sequence) method to compute length/perimeter with Sequence pixel size information.
- added getEffectiveDimension(..) dimension method.
- added unselectAllPoints() method.
- moved some methods to ROIUtil.
* ROI3D:
- added ROI3DPainter class for easier display and interaction for 3D ROI.
- added isOverEdge(..) method.
- added add(..), exclusiveAdd(..), intersects(..) and subtract(..) methods.
- added ROI3DShape: abstract class for 3D Shape ROI.
- added ROI3DPoint: 3D point type ROI.
- added ROI3DLine: 3D line type ROI.
- added ROI3DPolyline: 3D polyline type ROI.
- added ROI3DStackShape: abstract class for 3D Stack Shape ROI.
- added ROI3DStackEllipse: Ellipse 3D stack type ROI (available from stacking operation).
- added ROI3DStackPolygon: Polygon 3D stack type ROI (available from stacking operation).
* ROI3DStack:
- fixed setName(..) methods so children get modified as well.
- deprecated getUseChildColor()/setUseChildColor(..) methods.
* ROI3DArea:
- added ROI3DArea(BooleanMask2D, zMin, zMax) constructor.
- added isOverEdge(..) method.
* ROI5DArea: fixed a bug in optimizeBounds()
* ROI Overlay: drawROI(..) and drawName(..) are now public.
* ROIUtil:
- moved methods from ROI: getUnion(..), getIntersection(..), ...
- added convertToStack(..) method to convert 2D ROI to 3D Stack ROI.
- added convertToMask(..) method to convert Shape ROI to Area ROI.
- added convertToShape(..) method to convert Area ROI to Polygon ROI.
- added getConnectedComponents(..) to separate and retrieve connected components from an input ROI.
- added copyROIProperties(..) to copy properties from an input ROI.
- added split(ROI, Line2D) to cut/split a ROI from a given Line2D.
- added convertToSequence(..) method to convert a list of ROI to a labeled sequence.
* ROIDescriptor: added getDescriptor(descriptors, descriptorId) method
* ROIPerimeterDescriptor: modified to use the new ROI.getLength(..) method.
* BooleanMask2D:
- added getConnectedContourPoints(..) method to retrieve contour in 'connected' order.
- minor change to make it safer.
* added new 'geom' classes: Polygon2D, Polyline2D, Shape3D (base class for 3D shape), Line3D, Polyline3D
* Rectangle3D: added intersectsLine(..) method.
* Point3D:
- added many methods to compute distance, total distance, angle, normalize, length, dot product, cross product...
- added translate(..) method
- better hashCode() implementation.
* Anchor2D:
- added integer Z position information (for 3D position of 2D ROI)
- added VTK display and interaction support (allow ROI2D manipulation with VTK).
* PathAnchor2D: fixed visibility for closing point.
* added Rectangle2DUtil, Line2DUtil and Point2DUtil classes (utilities for the java classes)
* Sequence:
- added position X, Y, Z information (metadata)
- added 'origin' resolution, XY region, Z range, T range, channel information (when loading sub part of an image)
- added getOutputBaseName() / getOutputExtension() and getOutputFilename() to obtain wanted output filename given 'origin' informations
- trying to load too large array of data throw a TooLargeArrayException exception
* SequencePersistent: added isValidXMLPersitence(..) methods
* SequenceUtil:
- added getOriginPoint(..) / convertPoint(..) for point position conversion operation
- added getOriginRectangle(..) / convertRectangle(..) for rectangle position conversion operation
* IcyBufferedImage:
- trying to load too large array of data throw a TooLargeArrayException exception
- added copyData(array, ..) method to copy data from an array
* IcyBufferedImageUtil:
- added fast downscaleBy2(..) methods to quickly downscale image by a factor of 2
- changed toBufferedImage(..) method so it returns accelerated volatile image when possible.
* new 'undoable' operations:
- ROIReplaceSequenceEdit (replaced single ROI in a sequence)
- ROIReplacesSequenceEdit (replaced multiple ROI in a sequence)
- PositionROIEdit (modified single ROI position)
- PositionROIsEdit (modified multiple ROI position)
- BoundsROIEdit (modified single ROI bounds)
- BoundsROIsEdit (modified multiple ROI bounds)
- PropertyROIEdit (modified single ROI property)
- PropertyROIsEdit (modified multiple ROI property)
- Point3DAddedROIEdit (added a new point in a 3D ROI)
- Point3DMovedROIEdit (modified a point in a 3D ROI)
- Point3DRemovedROIEdit (removed a point in a 3D ROI)
* DefaultSequenceEdit: default undo operation on Sequence also preserve ROI and Overlays now (reference only)
* IcyCanvas:
- added canvasToImageLogDeltaZ(..) method, this is the Z equivalent to canvasToImageLogDeltaY(..) / canvasToImageLogDeltaX(..) methods.
- added centerOn(region) method for centering view on a specified image location.
* IcyCanvas2D: improved setMousePos(..) method to be safer.
* IcyCanvas3D:
- added methods to handle mouse (image) position.
- added imageToCanvas(..) and canvasToImage(..) methods (with default implementation to avoid breaking compatibility)
* Canvas2D:
- added getFitToCanvas() / setFirToCanvas() methods
- getARGBImage(..) now returns volatile accelerated image for faster image drawing operation (may consume more memory to prepare the image)
* VtkCanvas:
- added getWorldZ(Point) method to retrieve Z depth for a given 2D canvas position.
- added worldToDisplay(Point3D) method to convert a 3D world point to canvas 3D position.
- added displayToWorld(Point) method to convert a 2D canvas position to a world 3D point.
- implemented imageToCanvas(..) and canvasToImage(..) from previous added methods.
- implemented getScaleX/Y() methods.
- implemented setMouseImagePosX/Y/Z(..) methods.
- mouse event now provide a correct mouse position.
- removed the enable picking on Mouse Move switch.
* VtkUtil: simplified getSurfaceFromImage(..) method.
* IcyVtkPanel: added proper event consuming.
* Loader:
- added checkOpening(..) method to check we have enough resource to open an image
- added methods to load only sub part (Z, T and C) and sub resolution of the image.
- fixed issues while using Importer on non image files.
- many changes in general, new methods, refactoring...
* Bio-Format importer:
- added multi thread support.
- added tile loading for large image and sub resolution loading.
- better thumbnail loading.
* AbstractImageProvider / PluginSequenceFileImporter / PluginSequenceIdImporter:
- improved default getThumbnail(..) implementation
- added getImageByTile(..) method to load an image by tile (useful for large image)
* Saver:
- added many new methods to check compatibility image writing compatibility.
- reverted channel combination for 3 channels image saving in TIFF format (better for RGB image preview)
- methods doing Z/T range saving operation are now deprecated (better to do it before)
- added method getCompatibleSequenceForWriter(..) to automatically convert a Sequence so it can be save by a given writer (possible data loss)
- added SaverOptionPanel for easier setting definition
* SequenceDataIterator: fixed typo making some ROI calculations wrong in some situation.
* MetaDataUtil: replaced OMEXMLMetadataImpl class by OMEXMLMetadata in some methods (more generic, check if that bring issue)
* FileUtil: added getFiles(..) method to easily retrieve file with a specific extension without using a FileFilter.
* XMLUtil: added filtering to avoid incorrect character in name/attribute fields.
* SystemUtil:
- added getJavaVersionAsNumber() method
- getJavaFreeMemory() return the total amount of free memory available to the JVM
- getJavaMaxMemory() return the maximum amount of memory the JVM will attempt to use
- getJavaAllocatedMemory() return the memory currently *allocated* by the JVM
- getJavaUsedMemory() return an estimation of the memory currently *used* by the JVM
- getJavaTotalMemory() is deprecated (replaced by getJavaAllocatedMemory())
* ImageComponent: now use a cache for faster image drawing
* NumberTextField: added setInteger(..) method to force integer value instead of double value.
* ImageJUtil: added convertToIcyBufferedImage(..) method to convert a single image from an ImagePlus to an IcyBufferedImage
* IcyExceptionHandler: added anti spam protection for report(..) method.
* IcyCommandButton: added setPopup(..) method to enable popup action.
* RecentList: thread safe accesses, fixed possible NPE.
Icy 1.8.6.0 - 26/07/2016
------------------------
Application:
* fixed an issue when we tried to reload an image which has been saved after a Z slice remove operation.
* removed POI library from Icy-Kernel package (fix the infamous workbook error in protocol).
* other internals tweaks or changes.
Icy 1.8.5.1 - 22/07/2016
------------------------
Application:
* fixed a minor bug in ROI table values refresh.
* fixed a bug in Plugin Importer retrieval.
Icy 1.8.5.0 - 20/07/2016
------------------------
Application:
* GUI: fixed infinite histogram refresh in very rare case (keep high CPU usage).
* General: fixed Plugin changelog display on plugin update (regression).
* Loader: minor fix on colormap retrieve for Bio-Formats importer.
Developer:
* added ColorUtil.getColorFromWavelength(double) method.
* ClassPatcher: add new methods.
* JarClassLoader: fixed issue with externally loaded classes.
Icy 1.8.4.0 - 11/07/2016
------------------------
Application:
* GUI:
- better handling of Ctrl+Tab shortcut to switch between opened image.
- double clicking on desktop background now collapse inspector instead of detaching it.
- modified desktop background image drawing.
* General:
- added an option to ask for saving new generated sequence before closing them.
* Metadata:
- removed issue which forced having a time interval > 0 on metadata edition.
- fixed possible NPE with metadata access.
* Loader: better colormap recovery from Bio-Formats
* PluginInstaller: added detection of corrupted JAR / XML file during installation (should get rid of these infamous false error reports)
* ImageJ: fixed wrapper so plugin playing with ImageJ Toolbar (as NeuronJ) work as expected.
Developer:
* ExternalizablePanel use its internal frame only only when required.
* added ConfirmDialog.confirmEx(..) method to distinguish 'Cancel' operation.
* ROI2D: removed perimeter calculation cache as it is dependent from Sequence metadata as well.
* ROI3D: removed surface area calculation cache as it is dependent from Sequence metadata as well.
* ZipUtil: added isValid(..) method
Icy 1.8.3.2 - 17/06/2016
------------------------
Application:
* fixed severals issues with metadata during image load/store operations.
Icy 1.8.3.0 - 13/06/2016
------------------------
Application:
* fixed small issue on single image saving operation (script / protocol).
Developer:
* Plugin: fixed issue with native library loading on OSX with java 8.
Icy 1.8.2.0 - 08/06/2016
------------------------
Application:
* fixed memory leak when removing image from Sequence.
* VTK: fixed NPE when drawing a ROI on an image which have a 3D duplicated view.
* always separate channel when saving in OME TIFF format (bug fixed in Bio-Formats library).
* better metadata preservation on image saving operation.
Developer:
* ROIXDArea: fixed a small issue in setBoooleanMask(..) method
* MetaDataUtil: fixed minors issues and added many methods to MetadataUtil.
* some internal refactoring.
Icy 1.8.1.0 - 12/05/2016
------------------------
Application:
* ROI Panel:
- relaxed mutex for better performance.
- refresh ROI descriptors when plugin list changed.
* ROI: fixed minors issues on contains(ROI) and intersects(ROI) methods.
* Viewer: display a message when changing canvas.
* fixed SequenceImporter and Importer plugin launch.
* plugin instance are registered on instance creation and not only on 'run' operation.
* minors changes on Plugin update process.
* others small fixes, tweaks and changes.
Developer:
* fixed a small issue with GuiUtil.createIcyFrameFromWindow(..) method.
* minors changes to LookAndFeelUtil.
* MetaDataUtil: fixed minors issues.
Icy 1.8.0.0 - 26/04/2016
------------------------
Application:
* VTK:
- upgraded to VTK 6.3
- switched to the new VTK OpenGL2 rendering backend
--> simplified mapper (GPU or CPU)
--> multi channel support for GPU raycasting
--> GPU raycasting should work on OSX as long the graphics card driver are up to date.
- switched to OpenGL components
--> OSX 10.6.8 and older *do not support anymore* VTK, do not upgrade to this version if you need to use VTK on these OS !
--> newer OSX versions can now use Java 7 or Java 8 without any troubles for VTK.
--> no more display refresh / overlapping on OSX.
* VtkCanvas:
- some changes related to the new VTK implementation.
- better handling of automatic rendering level.
- support object/ROI picking.
- improved translation operation.
- fixed global layers visibility for outline objects.
* Canvas2D: added background color support.
* ROI2DPoint: better visualization in VTK canvas.
* ROI2DShape: added selection box in VTK canvas.
* ROI2DArea: added visualization in VTK canvas.
* ROI3DArea: added visualization in VTK canvas.
* Viewer: better handling of error during canvas type change.
* Added support for inspector collapsing.
* Added support for Proxy authentication.
* ROI panel:
- added ROI color field.
- fixed ROI panel filtering / sorting.
- fixed refresh issue on property change for multiple ROI (as opacity change).
- fixed 'no more field update' bug after a not handled exception happened during descriptor calculation.
- split ROI Descriptor calculation on separate thread (3 threads) so basic information (as name, position...) are always immediately computed
and displayed even if a complex descriptor takes a very long time to compute.
- fixed multi selection when column sorting was enabled.
* Loader:
- better handling of error during Importer creation
- fixed XML cleaning for non image file (allow to open XML file from other importers)
* Double click on a Plugin in the Preferences plugin list open the plugin detail panel.
* Fixed issue with saving image file containing ':' character in their file path.
* Fixed Icy to ImageJ image conversion (was failing with double data type)
* Added warning tooltip when using 32 bits java on 64 bits window system.
* Fixed DownloadFrame so it can display download speed again.
* Re-introduced plugin download progress so we can cancel it.
* Better handling of windows positioning on different OS.
* Improved application launch speed (still very dependent of the number of plugin installed).
* Several memory usage optimization.
* Many minors improvements, tweaks and cleanup.
Developer:
* VtkCanvas:
- added pickProp(x,y) method.
- added getPickedObject() to retrieve picked object on last mouse press/move event.
- added 'PickOnMouseMove' property to allow object picking on mouse move event.
- moved volume shading switch to the setting panel.
- getMouseImagePos() method always returns null (not supported) now.
- alpha LUT factor is now modified in this class and not anymore in IcyCanvas3D.
* VtkImageVolume: simplified volume mapper definition (GPU or CPU)
* added VtkBinaryVolume class (derived from VtkImageVolume).
* VtkUtil:
- added getBinaryImageData(..) method to retrieve a binary vtkImageData object.
- added getSurfaceFromImage(..) method to transform a vtkImageData object to vtkPolyData (iso surface).
- added getBinaryColorMap() and getBinaryOpacityMap() methods.
- added setPolyDataColor(..), getOutline(..) and setOutlineBounds(..) methods.
- added getLayerProps(..) / added getLayersProps(..) methods.
- added getProps(..), hasProp(..) / addProps(..) methods.
- faster hasProp(..) method.
- safer canvas locking on method using it.
* ROI:
- moved basic updateFocus(), updateSelect() and updateDrag() handling in ROI class (was in ROI2D)
- moved basic mouseMove() and mousePressed() handling in ROI class (was in ROI2D)
- optimized contains(ROI) and getIntersection(ROI) methods.
- added isEmpty() method.
- added property info to ROI_CHANGED event (distinguish position or content change).
* ROI2D: added computePerimeter(Sequence) and getPerimeter(Sequence) methods to provide accurate perimeter information.
* ROI3D: added computeSurfaceArea(Sequence) and getSurfaceArea(Sequence) methods to provide accurate surface area information.
* ROI2DShape:
- added support for focus/selected state with VTK.
- added getTotalDistance(..) method with factors parameters to allow accurate calculation of perimeter.
* ROI2DArea:
- optimized intersect(ROI) method.
- fixed possible issue on XML persistence.
- more robust for multi thread environment.
* ROI3DArea: added support for focus/selected state with VTK.
* ROI3DStack: fixed minors issues.
* ROI Descriptor:
- perimeter & area calculation only available 2D ROI.
- surface area & volume calculation only available 3D ROI.
* BooleanMask2D:
- tweaks and fixes on boolean operation.
- reworked getContourLength() for more accurate calculation.
* BooleanMask3D:
- fixed and reworked getContourLength() for more accurate calculation.
* Overlay: added XML persistence support.
* Sequence:
- overlays can now be saved in XML persistence if the Overlay 'persistence' property is set (false by default).
- fixed setColormap(..) method so persistence is not lost in some case.
- contained IcyBufferedImage share a common IcyColorSpace object to reduce memory usage.
* IcyBufferedImage: by default IcyBufferedImage are now created with 'autoUpdateChannelBounds' set to false.
This avoid useless computation, flag is automatically updated when the image is added to a Sequence object.
* modified SequenceUtil/IcybufferedImage type conversion methods.
* Performance optimization:
- reworked the UpdateEventHandler to dramatically increase performance for large number of pending updates.
- replaced EventHierarchicalChecker with CollapsibleEvent --> ChangeListener interface modified (check for possible impact)
- replaced EventListenerList by List<Listener> for faster events dispatching in critical sections (ROI, Overlay...)
- optimized JAR resource loading for PluginClassLoader
- optimized XML load operation
* ImageUtil: added loadAsync(..) methods.
* SytemUtil:
- added isWindows64() method.
- added getScreenDevices() method.
* XMLUtil: optimized memory usage of zip/unzip operation.
* ZipUtil: added new pack(..)/unpack(..) methods.
* Polygon2D: fixed possible NPE.
* PluginDescriptor: added lazy load of changelog, icon and image (reduce memory usage).
* PluginRepositoryLoader: simplified loading (see PluginDescriptor changes)
* Array1DUtil:
- fixed ArrayToSafeArray methods when using same input and output type.
- fixed getInterleavedData(..) and deInterleave(..) methods.
* FileUtil: added cleanPath(String) method to remove some invalid character in file path before save operation.
* MetaDataUtil: added getTimeIntervalFromTimePositions(..) method
* DateUtil: added getTimeAsString(double valueInMs) method.
* Colormap: better detection of linear colormap.
* ComponentUtil: added fixPosition(Component) to fix position of a component entirely offscreen (useful for Window).
* UnitUtil:
- fixed a bug in displayTimeAsStringWithUnits(..) method.
- fixed UnitUtil.displayTimeAsStringWithComma(..) method.
* SystemUtil:
- added getScreenDevices(..) and getScreenDevice(..) to retrieve screen device for a given position / region.
- added getScreenBounds(..) to retrieve the area of a specific screen device.
* some refactoring.
Icy 1.7.3.0 - 12/11/2015
------------------------
Application:
- just some bug fixes here and there.
Icy 1.7.2.0 - 04/11/2015
------------------------
Application:
- fixed NPE on Metadata read preventing some image load operation (regression).
Icy 1.7.1.0 - 03/11/2015
------------------------
* ImageDataIterator:
- fixed a bug (regression).
- optimized a bit the implementation.
Icy 1.7.0.0 - 28/10/2015
------------------------
Application:
* ROI panel:
- full implementation of the new ROIDescriptor feature.
- extensible descriptor list by plugin.
- now display the number of selected / total ROI in the table.
- better display configuration.
- separate columns selection for view and export.
- added default drawing properties.
- improved table computation time.
- better value rounding policies.
- fixed 'NOT' boolean operation on 2D ROI with fixed Z, T or C position.
- faster ROI merge operation (up to 10x faster).
* fixed a bug in the Sequence dimension adjustment operation.
* Undo:
- fixed a bug with the undo operation of ROI remove point.
- some changes to the history panel.
* Histogram panel:
- bounds are now correctly restored from persistence.
- minors changes and fixes to the bounds range setting dialog.
* some fixes with 3D rendering (VtkCanvas)
* conversion from IJ to Icy do not anymore display RoiManager.
* better handling of error when changing the rendering mode (Canvas type change).
* new splash screens (which are now dynamically fetched from res/image/splash location).
* 'time interval' metadata is automatically computed when possible.
* custom colormap (in 'colormap' folder) are now visible in the colormap selector.
* double click on the 'Sequence filename' will open the folder where the file is actually located.
* we can now remove the warning message when starting a second instance of Icy.
* fixed a minor issue in search result with bold character.
* improved Z/T dimension swap operation performance.
* some improvements in support of plugin execution from command line.
* many others changes and tweaks.