File: release-notes.html

package info (click to toggle)
imagej 1.54g-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,520 kB
  • sloc: java: 132,209; sh: 286; xml: 255; makefile: 6
file content (2966 lines) | stat: -rw-r--r-- 156,338 bytes parent folder | download
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
<html>
<head>
<link rel="stylesheet" href="../docs/ij.css" type="text/css"/>
<title>Release Notes</title>
</head>
<body>

<li> <u>1.54g  18 October 2023</u>
<ul>
<li> Thanks to Yuekan Jiao, added a "16-bit histogram" 
option to the <i>Image&gt;Adjust&gt;Threshold</i> dialog
and a '16-bit' option to the setAutoThreshold()
macro function and the ImagePlus.setAutoThreshold(String) method.
When this option is enabled, the full 16-bit histogram is used to 
calculate the threshold of 16-bit images
(<a href="http://wsr.imagej.net/macros/js/AutoThreshold16.js">example</a>).
<li> Thanks to Eyal Rozenberg, the <i>File&gt;Import&gt;Raw</i> command
uses the directory name as the image title when the
"Open all files in folder" option is enabled.
<li> Thanks to Zoltan Kis, the <i>Process&gt;Noise&gt;Remove Outliers</i>
tools uses sliders for setting the radius and
threshold.
<li> Thanks to Nicolas De Francesco and Curtis Rueden,
the macro language documentation (functions.html) is now included
in ij.jar and is used by the Editor's Macros>Function Finder
command.
<li> Thanks to Robert Baer, the "Associate 'Show All' ROIs with slices"
option in the ROI Manager's More&gt;&gt;Options dialog is now always
enabled when ImageJ starts up.
<li> Thanks to Christian Tischer, files with an "ome.tif" or "ome.tiff" extension
are opened using Bio-Formats.
<li> Thanks to Fred Damen and Michael Schmid, the ImageProcessor.getSliceNumber()
method returns the stack position when not called from a
PlugInFilter.
<li> Thanks to Fred Damen, added the Dialog.getLocation(x,y) macro function.
<li> Thanks to Philippe Carl, added the RoiManager.setPosition(c,z,t)
macro function.
<li> Thanks to Fred Damen, the second argument of the
Dialog.addDirectory(label,defaultdir) function is no longer ignored when
the user clicks on the "Browse" button.
<li> Thanks to 'Phiir42', fixed bug with closed tables reopening after
a macro finishes.
<li> Thanks to 'Ender', fixed headless mode "Scale Bar" and "Show Info" bugs.
<li> Thanks to Michael Schmid, fixed ImageCanvas.fitToWindow() bug with
very small images or user resized windows
(<a href="http://wsr.imagej.net/macros/js/FitToWindowBug.js">example</a>).
<li> Thanks to Michael Ellis and Michael Schmid, fixed a
RotatedRectRoi rounding bug and a bug where newly created RotatedRectRois
consisted of 5 points instead of 4.
<li> Thanks to Volker Backer, fixed a Roi group bug with Fiji on Linux.
<li> Thanks to Yuekan Jiao and Michael Schmid, fixed a rounding error with
PointRoi.getContainedPoints().
<li> Thanks to Guenter Pudmich, fixed a 1.54d regression that caused 16-bit
grayscale PNGs to be opened incorrectly.
<li> Thanks to Saleh Altahini, fixed bug with opening ImspectorPro MSR files.
</ul>

<li> <u>1.54f  29 June 2023</u>
<ul>
<li> Improved recording of the <i>Analyze&gt;Tools&gt;Scale Bar</i> command.
<li> Thanks to Stephen Cross, added the <i>Image&gt;Overlay&gt;Toggle Overlay</i>
command.
<li> Thanks to Dennis Chang, drawString() defaults to antialiasing when
the font size is 14 or greater and it is disabled by
default on Macs to work around a Java/macOS text rendering bug
(<a href="http://wsr.imagej.net/macros/SmallText.ijm">example macro</a>,
<a href="http://wsr.imagej.net/macros/js/SmallText.js">example script</a>).
<li> Thanks to Philippe Carl, made the ImagePanel class, used
to add images to GenericDialogs, public
(<a href="http://wsr.imagej.net/macros/js/DialogImageDemo.js">example</a>).
<li> Thanks to Norbert Vischer, <i>File&gt;New&gt;Hyperstack</i>
adds slice labels when "Label Images" is checked in the
dialog.
<li> Fixed bug with getDir() macro function and IJ.getDir() method
changing the default directory when they are used to choose
a directory.
<li> Thanks to 'sat1999', fixed bug with File.setDefaultDir()
macro function and OpenDialog.setDefaultDirectory() method
not working as expected when used with directory choosers
added to dialog boxes.
<li> Thanks to Norbert Vischer, fixed bug with <i>Image&gt;Color&gt;Split Channels</i>
not correctly handling overlays.
<li> Thanks to Norbert Vischer, fixed bug with <i>Image&gt;Color&gt;Arrange Channels</i>
losing metadata.
<li> Thanks to Jeremy Adler and Michael Schmid, fixed bug that caused
<i>Make Band</i> to fail when the selection extended beyond the
image edge.
<li> Thanks to Julia Behnsen and Michael Schmid, fixed bug with 
automatic switching to scientific notation in results tables
(<a href="http://wsr.imagej.net/macros/bugs/ScientificNotation.ijm">test case</a>).
<li> Thanks to 'melikovk' and 'scuniff', fixed a PointRoi point count
bug when points are added both programmatically and interactively.
<li> Thanks to Herbie Gluender and Michael Schmid, fixed a bug with the
Array.findMaxima() macro function that occurred when the first array element
was NaN.
<li> Thanks to Michael Cammer, fixed a 1.54e <i>Analyze&gt;Tools&gt;Scale Bar</i>
regression with images that are spatially calibrated and have an ROI. 
</ul>

<li> <u>1.54e  4 June 2023</u>
<ul>
<li> Thanks to Jerome Mutterer, added the
<i>Help&gt;Examples&gt;Plots&gt;Plot with Spectrum</i>
example macro.
<li> Thanks to Jerome Mutterer, selections can now be both
filled and outlined.  For an example, use the new
<i>Help&gt;Examples&gt;Macro&gt;Easter Eggs</i>
command.
<li> Thanks to Zoltan Kis, when manually switching image windows,
"selectImage(title);" is recorded instead of
"selectWindow(title);".
<li> Thanks to Rodrigo Goncalves, added a "Do not create substack" checkbox
to the <i>Make Substack</i> dialog.
<li> Thanks to Eric Kischell, added a "Calibrate" checkbox to the
<i>Edit&gt;Options&gt;Conversions</i> dialog and a
setOption("CalibrateConversions",boolean) macro
function
(<a href="http://wsr.imagej.net/macros/CalibrateConversions.ijm">example</a>).
<li> Thanks to Chris Ambrose, the title is displayed in the
status bar when the cursor is moved over an image and the
alt key is down.
<li> Thanks to 'Nottsuni', the <i>Image&gt;Show Info</i> command
displays both the pixel value range and the display range.
<li> Thanks to Michael Ellis, the <i>Edit&gt;Selection&gt;Interpolate</i>
command works with composite selections with holes.
<li> Thanks to Philippe Carl and Michael Schmid, added the
Plot.eneableLive() macro function.
<li> Thanks to Jerome Mutterer, added the Color.wavelengthToColor()
macro function and the Colors.wavelengthToColor() method.
<li> Thanks to Michael Schmid, fixed issue with thresholding of 16-bit
and float images with inverting LUTs.
<li> Thanks to 'Jossie', fixed problem with <i>Image&gt;Color&gt;Make Composite</i>
not working with 1 channel, 3 slice stacks
(<a href="http://wsr.imagej.net/macros/Create16bitRGBTiff.ijm">example</a>).
<li> Thanks to Michael Schmid, fixed several scale bar bugs.
<li> Thanks to Philippe Carl, fixed bug with roiManager("Select",i)
macro function not updating the active selection.
<li> Thanks to Kurt De Vos, fixed bug with using
<i>Process&gt;Filter&gt;Convolve</i> in Fiji headless
mode.
<li> Thanks to Alan Brooks, fixed transparency bug with the
ImageRoi.setProcessor() method
(<a href="http://wsr.imagej.net/macros/js/SpinningLeafAnimation.js">example</a>).
<li> Thanks to Rodrigo Goncalves, added a warning message to the
<i>Make Substack</i> dialog with virtual stacks opened
by Fiji's FFMPEG plugin, which does not support slice deletion.
<li> Thanks to Justin Conroy, fixed arrow selection scaling bug.
<li> Thanks to Herbie Gluender, fixed isKeyDown() bug when using
"Run" button in macro editor.
<li> Thanks to Jerome Mutterer, fixed a bug with deleting
a rescaled overlay image ROI with a transparent background.
</ul>

<li> <u>1.54d  30 March 2023</u>
<ul>
<li> Thanks to Norbert Vischer, added an '#include'
statement to the macro language. For an example,
use the <i>Help&gt;Examples&gt;Macro&gt;Turtle Graphics</i>
command.
<li> Thanks to Stein Rorvik and Dennis Chang, added the
"Full range 16-bit inversions" option to the
<i>Edit&gt;Options&gt;Conversions</i> dialog
and the setOption("fullRangeInversions")
macro function.
<li> The <i>Image&gt;Show Info</i> command now displays LUT
information for 16 and 32 bit images.
<li> Thanks to Norbert Vischer, the <i>Process&gt;Binary&gt;Convert to Mask</i>
command no longer records the unnecessary and confusing
"method=Default background=Default" options.
<li> Thanks to 'Maro', added the RoiManager.selectPosition(c,z,t)
macro function.
<li> Thanks to Wilco Kasteleijn, fixed a bug
with opening 16-bit RGB PNGs
(<a href="https://imagej.net/ij/images/Jupiter-16-bit-RGB.png">example</a>).
<li> Thanks to Christian Tischer, fixed bug that caused the
ImagePlus.getDisplayRangeMin() and ImagePlus.getDisplayRangeMax()
methods to not work with undisplayed composite color
images.
<li> Fixed GUI scaling of <i>Image&gt;Color&gt;Show LUT</i>
plots.
<li> Thanks to 'librethinker', fixed bug that limited Minimum and Maximum for
16-bit images in the Brightness/Contrast dialog to 0 and 65,535.
<li> Thanks to 'KlMichel', fixed bug with ROI Manager "Multi Measure"
command and point selections.
<li> Thanks to 'jboulanger', fixed a bug with
<i>Image&gt;Stacks&gt;Tools&gt;Make Substack</i> where modifications to
the newly created stack appeared in the original stack.
<li> Thanks to Eric Denarier, fixed a bug with creation of selections
less than one pixel in size.
<li> Thanks to Corey Elowsky, fixed bug where a red cursor was saved
with synchronized images.
<li> Fixed a 1.53g text editor regression where Search and Debug
selections were not visible on windows with "Run", "Install"
and "Macro" buttons.
<li> Thanks to Dennis Chang, fixed a 1.53k regression that caused
the <i>Edit&gt;Invert</i> command to not work as expected with
density calibrated 16-bit images.
</ul>

<li> <u>1.54c  6 March 2023</u>
<ul>
<li> Thanks to Jerome Mutterer, added support for 
<a href="http://wsr.imagej.net/macros/Library.txt">Turtle Graphics</a>.
<li> Thanks to Eugene Katrukha, re-implemented the
<i>Edit&gt;Selection&gt;Fit Spline</i> command
using Haysn Hornbeck's freely available
"Fast Cubic Spline Interpolation"
algorithm.
<li> Thanks to Paul Evans, ImageJ now opens 10-bit tiffs.
<li> Thanks to Stein Rorvik, text rendering in the Log
window and tables is optimized for LCD screens on
Linux and Windows, 
<li> Thanks to Damon Poburko, the <i>Save</i> command in the
ROI Manager is now much faster.
<li> Thanks to Fred Damen, added a <i>Font&gt;Monospaced</i>
checkbox menu command to the Log window.
<li> Thanks to Fred Damen, the <i>Edit&gt;Options&gt;Compiler</i>
command supports Java versions greater than 9.
<li> Thanks to 'michihaa', the <i>File&gt;Import&gt;Tiff Virtual Stack</i>
command calls the Bio-Formats Importer for files that can't
be opened by the built in tiff reader.
<li> Thanks to Stein Rorvik, added the
TextWindow.setAntialiased(boolean) method.
<li> Fixed a bug that caused the selectImage(n) macro function,
where n&gt;0, to sometimes fail in batch mode macros.
<li> Thanks to 'Sethur', fixed a bug that caused the current
working directory to not be transferred to plugins executed
from command line macros.
<li> Thanks to 'Sethur', fixed a bug the caused the
ImagePlus.setPositionWithoutUpdate(c,z,t) method to not
work as expected.
<li> Thanks to Eugene Katrukha, fixed a bug that caused the
<i>Edit&gt;Selection&gt;Fit Spline</i> command to 
shorten freehand line selections.
<li> Thanks to 'lguerard', fixed a v1.53 regression that caused
the <i>Image&gt;Overlay&gt;Flatten</i> command to not work
correctly with hyperstacks.
<li> Thanks to 'Sethur', fixed a v1.53t regression that caused
"Average Intensity" Z projection to not work correctly with 
32-bit hyperstacks.
<li> Thanks to Eugene Katrukha, fixed a bug that caused the
<i>Edit&gt;Selection&gt;Fit Spline</i> command to 
shorten freehand line selections.
<li> Thanks to 'michihaa', fixed a bug that caused files with a
".tiff" extension dragged and dropped on the "&gt;&gt;" icon
in the toolbar to not open as virtual stacks.
</ul>

<li> <u>1.54b  08 January 2023</u>
<ul>
<li> Fixed a 1.54a regression (changing IJ.URL2 to "http://imagej.net/ij")
that caused the sample images to fail to load on Fiji.
</ul>

<li> <u>1.54a  05 January 2023</u>
<ul>
<li> Thanks to Herbie Gluender, added the 
<i>Process&gt;Binary&gt;Median</i>
command and the ImageProcessor.threshold(level1,level2)
method.
<li> Thanks to Michael Cammer, setOption("ScaleConversions",boolean)
is recorded when doing stack conversions.
<li> Thanks to Volko Straub, added the recordable
RoiManager.associateROIsWithSlices(), RoiManager.restoreCentered()
and RoiManager.useNamesAsLabels() macro functions.
<li> Thanks to Christian Tischer, added the
AVI_Reader.open(path,options) method.
<li> Thanks to Wilhelm Burger, added the GenericDialog.addEnumChoice()
method
(<a href="http://wsr.imagej.net/macros/AddEnumChoice.bsh">BeanShell example</a>).
<li> Thanks to Wilhelm Burger, added the ImageProcessor.isThreshold()
method.
<li> Changed the URL constant in IJ.java from "http://imagej.nih.gov/ij"
to "http://imagej.net/ij".
<li> Thanks to Andrew McCall, fixed a bug that caused the
<i>Image&gt;Transform&gt;Rotate</i> command to fail when rotating
very large stacks, but processing is now slower because 
multi-threading is no longer used.
<li> Thanks to 'rlazevedo1', fixed a bug that caused plot symbols to
not be drawn correctly when the line width was greater that 3
(<a href="http://wsr.imagej.net/macros/PlotsWithVaryingSizeSymbols.ijm">example</a>).
<li> Thanks to 'rlazevedo1', fixed a bug that caused the range arrow overlay to
be included when saving a plot in tiff format.
<li> Thanks to Eg Laf, fixed a bug that caused the multi-point tool
to throw an exception when it was used for counting.
<li> Thanks to 'Bio7', fixed minor bugs that caused compiler warnings.
<li> Thanks to 'Wyn', worked around a bug in Fiji's <i>Import&gt;Movie (FFMPEG)</i>
command that caused the <i>Duplicate</i> and <i>Reslice</i> commands to
sometimes throw exceptions.
<li> Thanks to Wilhelm Burger, fixed bugs that caused some of the 
<i>Image&gt;Adjust&gt;Threshold</i> auto thresholding methods to 
not work with bilevel images.
<li> Thanks to Diego Perez Dones and Olivier Burri, fixed a bug that caused
the <i>Process&gt;Find Maxima</i> command to not work as expected with
float EDM images.
<li> Thanks to 'Kavi', fixed a 1.53v regression that prevents measurement
of angle selections.
</ul>

<li> <u>1.53v  21 November 2022</u>
<ul>
<li> Thanks to Andrey Kazak, added the String.setFontSize() macro function.
<li> Thanks to Mario Faretta, added the Dialog.addImage(path) macro function.
<li> Thanks to Wilhelm Burger, added the Roi.translate() macro
function and Roi.translate() method
(<a href="http://wsr.imagej.net/macros/RoiTranslate.ijm">macro example</a>,
<a href="http://wsr.imagej.net/macros/js/RoiTranslate.js">JavaScript example</a>).
<li> Thanks to Avinoam Kalma, fixed a bug that caused ImageJ
to not correctly read TIFF images saved with the "deflate"
compression option.
<li> Thanks to Mary Brown, fixed a bug that caused the
"Menu font size"  setting in the <i>Edit&gt;Options&gt;Appearance</i>
dialog to not be preserved in the preferences file.
<li> Thanks to Hidenao Iwai, fixed a bug that caused the
<i>Image&gt;Stacks&gt;Reslice</i> command to throw an
exception if the selection extended beyond the
image bounds.
<li> Thanks to 'Alex' and Curtis Rueden, fixed a bug that caused ImageJ
to freeze if "waitForUser" was entered into the "Interactive Interpreter"
window.
<li> Thanks to 'Olivier', fixed a bug that caused RGB DICOM files imported
using Bio-Formats as hyperstacks to "loose" the metadata when converted
to RGB.
<li> Thanks to Wilhelm Burger, fixed a bug that caused the Roi.isLine() and
Roi.isLineOrPoint() methods to return 'false' for angle selections.
<li> Thanks to Curtis Rueden, fixed a bug that caused the
<i>File&gt;Open Samples&gt;Cache Sample Images</i> command
to not work on Fiji.
<li> Thanks to Peter Zentis, fixed a 1.53k regression that caused the
<i>Image&gt;Invert</i> command to ignore selections when inverting
16-bit images. Note that the image may not be displayed correctly unless
it uses the full pixel value range (0-65535) or a range has been set
using the "Set" option of the <i>Image&gt;Adjust&gt;Brightness/Contrast</i>
dialog.
</ul>

<li> <u>1.53u  15 October 2022</u>
<ul>
<li> Thanks to Giovanni Cardone, the <i>Image&gt;Transform&gt;Bin</i>
command now supports z-binning of 4D hyperstacks.
<li> Thanks to Dr. Njitram, the <i>Analyze&gt;Plot Profile</i>
command works with rotated rectangles.
<li> The <i>Edit&gt;Selection&gt;Line to Area</i> command
converts straight line selections to rotated rectangle
selections.
<li> Thanks to Herbie Gluender, improved recording of the
<i>Edit&gt;Selection&gt;Properties</i> command and added a
comment to the <i>Edit&gt;Options&gt;Line Width</i> dialog
to make it clearer what the command does.
<li> Thanks to Pau Carrillo-Barbera, the Selection Brush Tool is no
longer disabled when activating a selection in an overlay by
double clicking on it.
<li> Thanks to 'John D.', made GenericDialog.resetCounters()
public so it can be called by plugins using
GenericDialog.addButton()
(<a href="http://wsr.imagej.net/plugins/Button_Example2.java">example</a>).
<li> Thanks to Dennis Chang, added the recordable Image.removeScale()
macro function and the ImagePlus.removeScale() method.
<li> Added the ImageProcessor.setColor(String) method.
<li> Thanks to Tiago Ferreira, fixed a bug that caused toolbar
contextual menus to ignore the <i>Edit&gt;Options&gt;Appearance</i>
"GUI scale" setting.
<li> Thanks to Jan Brocher, fixed a bug that caused the "Results" menu
in a table to disappear if the table was renamed.
<li> Thanks to Rene Ramekers, fixed a bug that caused the
<i>File&gt;Import&gt;TIFF Virtual Stack</i> command to not 
correctly calibrate TIFF stacks that were not created
by ImageJ.
<li> Thanks to Andrey Kazak, fixed a bug that caused the
<i>Image&gt;Overlay&gt;From ROI Manager</i> menu command to
not transfer the ROI positions.
<li> Thanks to Herbie Gluender, fixed a bug that caused the
<i>Edit&gt;Selection&gt;Straighten</i> command to change
the global line selection width.
<li> Thanks to Nayana Gaur, fixed a bug that caused ROIs with
x or y coordinates greater than 60,535 and less than 65,535 to
be saved incorrectly.
<li> Thanks to Christoph Gohike, fixed a bug that caused ImageJ to
create TIFF files with invalid RowsPerStrip tags when the image
height was greater than 65,535.
<li> Thanks to Michael Schmid, fixed several bugs
with <i>Image&gt;Stacks&gt;Plot Z-axis Profile</i>
"Live" plots.
<li> Thanks to Jerome Mutterer, fixed a bug that caused the "CP"
window to not be updated when the Color Picker tool was used to pick
new colors from the active image.
<li> Thanks to Ko Sugawara, fixed a bug that caused the 
Opener.openAndAddToRecent() method to return 'false' when
the file was opened successfully.
<li> Thanks to Stein Rorvik, worked around a Java bug on Windows that 
caused the main menu bar sub-menus to not scale to larger than 17 points.
Unfortunately, the main menu bar font size on Windows is still limited to
17 points regardless of the "GUI scale" setting.
<li> Thanks to Stein Rorvik, fixed a bug that caused the Roi.Paste
macro function to not work as expected.
<li> Thanks to 'bobfRT1', fixed a scale bar width rounding error.
<li> Thanks to 'rlimame', fixed a bug that caused the
<i>Edit&gt;Selection&gt;Rotate</i> command to convert
Rotated Rectangle selections to Polygon selections.
<li> Thanks to Michael Schmid, fixed bugs that caused the
<i>Scale</i> and <i>Rotate</i> commands in the ROI Manager to
only work correctly when processing all the ROIs.
<li> Thanks to Mark Hiner, fixed a 1.53t regression that caused
the <i>Image&gt;Stacks&gt;Z Project</i> command to ignore the last
slice when doing "Average" projection of 32-bit stacks.
<li> Thanks to Jerome Mutterer, fixed a 1.53o regression that caused
unexpected error messages when double clicking on a line in a table or
in the ROI Manager when a custom action was not defined
(<a href="http://wsr.imagej.net/macros/TableAndRoiManagerActions.ijm">example</a>).
</ul>

<li> <u>1.53t 24 August 2022</u>
<ul>
<li> Thanks to Michael Schmid, the <i>Analyze&gt;Tools&gt;Analyze Line Graph</i>
command is greatly enhanced:
  <ul>
  <li> Works on all image types.
  <li> Spatial calibration is read correctly.
  <li> Reads values for each x value in pixels.
  <li> Without calibration, the values are pixel coordinates, not pixel coordinates + 0.5.
  <li> Tries to follow the curves, even if curves cross each other.
  <li> Plots (and lists) different curves as different data sets.
  <li> Honors non-rectangular selections instead of deleting them.
  <li> Produces somewhat usable output even without a selection or any editing.
  </ul>
<li> Thanks to Thomas Laurent, the String.format() macro function now
accepts a variable number of numeric arguments.
<li> Thanks to Stein Rorvik, the <i>Image&gt;Stacks&gt;Tools&gt;Reduce</i>
command produces a virtual stack if the source is a virtual stack
created using <i>File&gt;Import&gt;Image Sequence</i> or
<i>File&gt;Import&gt;Stack from List</i>.
<li> Thanks to Nicolas De Francesco, the <i>Image&gt;Color&gt;Invert LUTs</i>
command (used by the "Channels" tool) works with non-linear LUTs.
<li> Thanks to Volko Straub, the <i>Image&gt;Stacks&gt;Z Project</i>
command ignores NaNs when doing "Average" projection of
32-bit stacks.
<li> Thanks to 'Danielle_Z', ImageJ now opens compressed BMP images.
<li> Thanks to Philippe Carl, the ROI Manager's "Labels"
checkbox is no longer enabled on Windows when clicking on
"Show All" and ROIs are now automatically updated in the ROI Manager
after being modified by holding down the shift or alt key.
<li> Thanks to Dennis Chang and Michael Schmid, added the is("FFT")
macro function.
<li> Thanks to 'Leonicolash' and Volker Backer, fixed a bug that
caused the Table.sort() macro function to fail after
using saveAs("Results", path).
<li> Thanks to Daniel Leswasserman, fixed a bug that sometimes caused
the "Dir:" field of the <i>File&gt;Import&gt;Image Sequence</i> dialog
to be too wide.
<li> Thanks to Michael Schmid, fixed a bug that caused the
Roi.getImageID() method to throw a NullPointerException.
<li> Fixed a bug that caused sample images to not open
on Windows 10 with Java 1.8.0_172.
<li> Thanks to Christophe Leterrier, fixed a bug that caused
32-bit to 16-bit conversions of multichannel images to not
work as expected.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
<i>File&gt;Import&gt;Stack From List</i> command to not
preserve EXIF data.
<li> Thanks to Stein Rorvik, fixed several bugs related to scaling of
stacks with overlays.
<li> Thanks to Fred Damen, fixed a 1.52u regression that caused
getStatistics().mean values of single point selections
to be incorrect.
<li> Thanks to Mark Hiner, fixed a 1.53h regression that sometimes 
caused line selection bounds to be too large.
</ul>

<li> <u>1.53s 19 May 2022</u>
<ul>
<li> Thanks to Stein Rorvik, added the
<i>Edit&gt;Selection&gt;Translate</i> command, the ROI Manager <i>Scale</i> and
<i>Rotate</i> commands, and the RoiManager.scale(), RoiManager.rotate(),
RoiManager.translate(), RoiManager.selectByName() and RoiManager.getIndex()
macro functions.
<li> Thanks to Fred Damen, added the <i>Image&gt;HyperStacks&gt;Make Subset</i>
command, an alias for the <i>Image&gt;Stacks&gt;Tools&gt;Make Substack</i>
command.
<li> Thanks to Fred Damen, GenericDialog sliders are mouse wheel controllable
and TextFields on Linux are not as tall.
<li> Thanks to Wilhelm Burger, the ClassChecker no longer
deletes files and only runs when the <i>Compile and Run</i>
command is used.
<li> Thanks to Stein Rorvik, added the Dialog.addImageChoice(label,default)
macro function.
<li> Thanks to Michael Schmid, fixed several plot legand issues
(<a href="http://wsr.imagej.net/macros/PlotLegendTest.txt">example</a>).
<li> Thanks to Laurent Thomas, units of imported tiffs are
converted to microns if the pixel width is <= 0.001 cm
(previously it was <= 0.0001 cm).
<li> Thanks to Lance Davidson, ImageJ now correctly opens CSV
files that start with a 0xFEFF character (zero width no-break space).
<li> Thanks to Tiago Ferreira, fixed a bug that caused commands 
and keyboard shortcuts installed by StartupMacros.txt in the
<i>Plugins&gt;Macros</i> menu to be deleted when a macro tool
was added to the toolbar.
<li> Thanks to 'DentedDuck', fixed a bug that caused the
<i>Image&gt;Transform&gt;Rotate</i> command to increase the image
width or height by one pixel if the angle was 0 or 90 degrees
and "Enlage image" was checked.
<li> Thanks to Norbert Vischer, fixed a bug that caused an
exception to occur when duplicating a stack and the "Range:"
field was empty.
<li> Thanks to Fred Damen, fixed a bug that caused the
<i>Image&gt;Stacks&gt;Tools&gt;Make Substack</i> command
to not work correctly with stacks with nSlices=1 and
nFrames&gt;1.
<li> Thanks to Michael Schmid, fixed a bug that caused point
selection bounds to be too wide and tall by 1 pixel
(<a href="http://wsr.imagej.net/macros/PointBounds.ijm">example</a>).
<li> Thanks to Stein Rorvik, fixed a bug that caused the
toString(number,decimalPlaces) macro function to not work
as expected.
<li> Thanks to Ellie Cho and 'Research_Associate', fixed a 1.53h
regression that caused ROIs to not be drawn on images 
displayed using setBatchMode("show").
</ul>

<li> <u>1.53r 21 April 2022</u>
<ul>
<li> Added a "Help" button to the <i>Channels</i> dialog.
<li> The <i>Image&gt;Type&gt;RGB Stack</i> command converts
multi-channel composite images into RGB stacks
(<a href="http://wsr.imagej.net/macros/CompositeProjection.ijm">example</a>).
<li> Set the "ClipWhenSumming" image property "true" and the
<i>Image&gt;Stacks&gt;Z Project</i> command will clip at 255
when summing RGB stacks
(<a href="http://wsr.imagej.net/macros/CompositeProjection.ijm">example</a>).
<li> Added the <i>Image&gt;Color&gt;Invert LUTs</i> command.
<li> Thanks to Bram van den Broek, restored the "Don't reset range"
option to the <i>Threshold</i> dialog.
<li> Thanks to Alan Brooks, the "Fill with background color"
option of the <i>Image&gt;Transform&gt;Rotate</i> command
is now available with 16 and 32 bit images.
<li> Thanks to Philippe Carl, press shift+alt+n to create a
text window with "Run" and "Install" buttons, and a language
drop down menu.
<li> Thanks to Stein Rorvik, added the ImageJ.getStatusBarText() method.
<li> Thanks to Wilhelm Burger, added versions of the ImageProcessor
getColumn() and putColumn() methods that accept float[] arguments.
<li> Thanks to Alan Brooks, added the
ImageProcessor.setBackgroundColor(Color) method.
<li> Thanks to Stein Rorvik, fixed a bug that caused values
to not be displayed correctly in <i>Image&gt;Math&gt;</i> dialogs
if "Decimal places" in the <i>Analyze&gt;Set Measurement</i>
was set to 9.
<li> Thanks to Abbas Haghshenas and Nicolas De Francesco, fixed
a 1.54p regression that caused the "OK" button in dialog boxes
to be left-aligned on Windows.
</ul>

<li> <u>1.53q 30 March 2022</u>
<ul>
<li> Thanks to Kevin Terretaz, added the More&gt;Invert LUTs command
to the "Channels" dialog.
<li> Thanks to Olivier Burri, ImageJ calculates the perimeter of a
"polygon" ROI the same way as a "traced" ROI if it appears to have
been created by edge tracing.
<li> Thanks to 'muniak', the <i>Process&gt;Enhance Contrast</i>
dialog displays values using 2 decimal places.
<li> Thanks to Norbert Vischer, replaced, in the ImageJ source,
deprecated new Integer(intOrString) and new Double(intOrString)
constructors with Integer.valueOf(intOrString)
and Double.valueOf(intOrString).
<li> Thanks to 'TMC', added the showRow() and showCell() methods
to the TextPanel class
(<a href="http://wsr.imagej.net/macros/SetTablePosition.ijm">example</a>).
<li> Thanks to Fred Damen, fixed a bug that caused bin starts in tables
created by clicking on "List" in histogram windows to be rounded
to integers.
<li> Thanks to Herbie Gluender, fixed a bug that caused <i>Undo</i> of rotated
images with overlays to not work as expected.
<li> Thanks to Michael Schmid, fixed a regression that caused some
PNG images to open as stacks.
<li> Thanks to Christophe Leterrier, fixed a 1.53p regression that caused the
run("Table...",options) macro function to fail.
</ul>

<li> <u>1.53p 4 March 2022</u>
<ul>
<li> Thanks to Stein Rorvik, <i>Analyze&gt;Set Scale</i>,
when there is a rectangular selection, sets "Distance in pixels" to the
largest of the selections' width and height.
<li> Thanks to Ron DeSpain, drag and drop sets the default path to the
source folder. The default path is listed in the
<i>Plugins&gt;Utilities&gt;ImageJ Properties</i> output
as "Current dir".
<li> Thanks to Alan Brooks, the "B&C" dialog now uses scientific
notation for small (less than 0.001) values.
<li> Thanks to Michael Schmid, the macro line number is added to the
"Exception" window when a macro causes an exception
(<a href="http://wsr.imagej.net/macros/MacroException.ijm">example</a>).
<li> Thanks to James Manton, increased MAX_CHANNELS (maximum number
of image channels in composite mode) from 7 to 8.
<li> Thanks to 'JWinchester', added the recordable File.openSequence(path,options)
macro function.
<li> Added the Roi.setUnscalableStrokeWidth() macro function.
<li> Thanks to Carl Priddy, added the Table.columnExists() macro function.
<li> Thanks to Michael Schmid, added the ResultsTable.setValues()
method.
<li> Thanks to Peter Lunding Jensen, fixed bugs that caused
the <i>File&gt;New&gt;Hyperstack</i> command to incorrectly
label RGB hyperstacks.
<li> Thanks to 'ALisboa', fixed a bug that caused the
<i>File&gt;Import&gt;Image Sequence</i> command
to throw an exception if the directory path was
invalid.
<li> Fixed bugs that caused saved sub-pixel resolution rounded rectangle
and oval ROIs to not be reopened correctly
(<a href="http://wsr.imagej.net/macros/js/SubPixelSelections.js">example</a>).
<li> Thanks to Michael Schmid, fixed a bug that caused
"Synchronize Windows" to throw a NullPointerException when
using the "Close All" command.
<li> Thanks to Michael Schmid, fixed a bug that caused
zero-length lines and isolated points in lines to not
be shown in plots.
<li> Thanks to Michael Mell, fixed a bug that caused
ROIs in an overlay on a single channel 3D image to not
be displayed correctly if the position was set using
roi.setPosition(c,z,t).
<li> Thanks to Kenta Shimamoto and Christoph Gohlke,
fixed a bug that caused tiff images larger than 2 GB
to open upside down.
<li> Thanks to Laurent Thomas, fixed a bug that caused
a double-click on the rectangle ROI icon in the toolbar
to display both the "ROI Defaults" dialog and
the right-click menu.
<li> Thanks to Laurent Thomas, fixed a bug that caused
the IJ.openUrlAsString() method to not correctly interpret
special characters
<li> Fixed a 1.53j regression that caused activation
of ROIs in an overlay by double clicking on a row
in an "Overlay Elements of..." table to not work
as expected.
<li> Thanks to 'hwada', fixed a 1.53i regression that
caused an extra click to be needed to activate and move
an ROI in an overlay with labels.
<li> Thanks to Gabriel Landini, fixed a 1.53g regression that caused
the <i>File&gt;New&gt;Image</i> command to not
work as expected when creating stacks and "Fill with" was
"white" or "ramp".
</ul>

<li> <u>1.53o 11 January 2022</u>
<ul>
<li> Thanks to Christophe Leterrier and Peter Haub, added 
"Composite Sum", "Composite Max", "Composite Min" and
"Composite Invert" as choices in
the <i>Image&gt;Color&gt;Channels Tool</i> dialog. "Composite Min" and
"Composite Invert" are useful for displaying composite images with inverted LUTs
(<a href="http://wsr.imagej.net/images/3_channel_inverted_luts.tif">example image</a>,
<a href="http://wsr.imagej.net/macros/Invert_All_LUTs.ijm">example macro</a>).
<li> Thanks to Jerome Mutterer, added support for Results Table and ROI Manager
customizable actions
(<a href="http://wsr.imagej.net/macros/TableAndRoiManagerActions.ijm">example</a>).
<li> Thanks to Fred Damen, the <i>Image&gt;Adjust&gt;Window/Level</i>
and <i>Analyze&gt;Histogram</i> windows use scientific notation as needed
to display small values.
<li> Thanks to Stein Rorvik, <i>Edit&gt;Selection&gt;Specify</i>
respects the image origin when "Scaled units" is checked
in the dialog.
<li> Thanks to Stein Rorvik, ImageJ looks for the preferences file ("IJ_Prefs.txt")
in the current directory, the ImageJ directory and the username/.imagej directory
(username/Preferences on MacOS).
<li> Thanks to Kimberly Meechan and Jan Eglinger, ImageJ restores
the original look and feel after temporarily using the system
look and feel with Windows dialogs.
<li> Thanks to Stein Rorvik, the count field in the
<i>Process&gt;Binary&gt;Options</i> dialog is saved
in the preferences file.
<li> Thanks to Stein Rorvik, added a "Create new stack" checkbox
to the <i>Process&gt;Binary&gt;Make Binary</i>
and <i>Convert to Mask</i> dialog boxes.
<li> Thanks to Stein Rorvik, added the getDir("preferences") macro function.
<li> Thanks to Fred Damen, added the ImagePlus.setDefaultDisplayRange()
method
(<a href="http://wsr.imagej.net/macros/js/SetDefaultDisplayRangeDemo.js">JavaScript example</a>).
<li> Thanks to Michael Schmid, fixed a bug that caused histograms
of thresholded 16-bit and 32-bit images to be displayed incorrectly
if the "Limit to threshold" measurement option
was enabled.
<li> Thanks to Stein Rorvik, fixed a bug that caused the loss of
density calibration with virtual stacks.
<li> Thanks to Kees Straatman, fixed a bug that caused the
IJ.openImage() method to not work with images opened using
Bio-Formats. As a result, the <i>Open Next</i>, <i>Import&gt;Image Sequence</i>
and <i>Process&gt;Batch&gt;</i> commands now work with images
opened using Bio-Formats.
<li> Thanks to Michael Cammer, fixed a bug that caused the
Table.deleteRows() macro function to not work as expected
with tables not named "Results".
<li> Thanks to 'yogurt', fixed a bug that caused unexpected
popup menus when using the selection brush tool.
<li> Thanks to Christian Tischer, fixed a bug that caused some
dragged and dropped "https://" URLs to not open.
<li> Thanks to Hidenao Iwia, fixed a bug that caused
GRAY12_UNSIGNED images to not open correctly as
FileInfoVirtual stacks.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
showMessageWithCancel() macro function to fail when run
from the command line.
<li> Thanks to Fred Damen, fixed a bug that caused slice labels
of one slice stacks to not be displayed in the
<i>Image&gt;Show Info</i> window.
<li> Thanks to 'IztokD', fixed a regression that caused some
PNG images to open as stacks.
<li> Thanks to 'CellKai', fixed a 1.53d regression that caused the
RoiScaler.scale() method to sometimes not work as expected.
<li> Thanks to 'odinsbane', fixed a 1.53m regression that
caused exceptions to sometimes not be shown.
<li> Thanks to 'chin', fixed a 1.53i regression that caused the
roiManager("Show All") macro function to not work in
batch mode.
</ul>

<li> <u>1.53n 7 November 2021</u>
<ul>
<li> Thanks to Stein Rorvik, added a "Raw values" checkbox
to the <i>Image&gt;Adjust&gt;Threshold</i> dialog
<li> Thanks to 'Sethur', added a DICOM preference
allowing fixed scaling across slices via RescaleSlope
and Intercept.
<li> Thanks to Norbert Vischer, added a "Cancel" button
to the waitForUser() dialog.
<li> Thanks to Christopher Schmied, histogram plot
outlines are drawn in dark blue to help distinguish the
outline from the plot.
<li> Thanks to Michael Schmid, restored the ability
to select the starting and ending frame in the
<i>File&gt;Import&gt;AVI</i> dialog.
<li> Thanks to Joseph Chen, removed the "Don't reset range"
checkbox from the <i>Image&gt;Adjust&gt;Threshold</i> dialog.
<li> Thanks to Jerome Mutterer, added the Math.constrain(n,min,max)
and Math.map(n,low1,high1,low2,high2) macro functions
(<a href="http://wsr.imagej.net/macros/tools/Constrain_Map_Demo_Tool.ijm">example tool</a>).
<li> Thanks to Peter Bankhead, the ImagePlus(String,Image)
constructor now supports multi-band
BufferedImages.
<li> Thanks to Michael Schmid, fixed bugs and improved
the documentation of the Colors class.
<li> Thanks to Michael Cammer, fixed a bug that
caused the border color of composite images to
change to the color of the channel being displayed.
<li> Thanks to Michael Schmid, fixed a bug that
caused macros to fail due to a race condition
when converting stacks to hyperstacks.
<li> Thanks to Stanislav Chizhik, fixed a bug that
sometimes caused <i>File&gt;Import&gt;Image Sequence</i>
to open images as the wrong type when
using a filter.
<li> Thanks to Romain Guiet, fixed a bug that caused
the <i>Image&gt;Scale</i> command to not work
correctly with hyperstacks.
<li> Thanks to Stein Rorvik, fixed a 1.53m regression
that caused macros importing an image sequence to
sometimes not open all images in a folder.
<li> Thanks to Michael Schmid, fixed a 1.53m regression
that caused image stacks to open slowly on Windows
in batch mode.
<li> Thanks to Stein Rorvik and Michael Schmid, fixed a 1.53m
regression that caused macro statements like
run("Macro...", "code=[...] stack") to fail.
<li> Thanks to Herbie Gluender, fixed a 1.53m regression that
caused the <i>Image&gt;Adjust&gt;Brightness/Contrast</i>
dialog to not work as expected with 32-bit images
containing NaNs.
</ul>

<li> <u>1.53m 28 September 2021</u>
<ul>
<li> Thanks to Zoltan Kis, the <i>File&gt;Import&gt;Image Sequence</i>
dialog now displays the number of images that will be opened.
<li> Thanks to Norbert Vischer, exceptions on the Event Dispatch Thread
are now reported in the Log window.
<li> Thanks to Remi Berthoz, the <i>Analyze&gt;Tools&gt;Scale Bar</i>
command now has the ability to draw both vertical and/or
horizontal scale bars.
<li> Thanks to Stein Rorvik, added a "Colors..." command to the
Color Picker dropdown menu and made most of the commands in
that menu recordable. 
<li> Thanks to Esteban Fernandez, added a "Fill color:"
field to the <i>Image&gt;Stacks&gt;Images to Stack</i>
dialog box.
<li> Thanks to Barry DeZonia, the findMinAndMax() methods 
in the Short/Int/Float processors are now faster
(<i>Plugins&gt;Utilities&gt;Benchmark</i>
runs 3% faster).
<li> Thanks to Michael Schmid, added support for
drag and drop to JFileChooser dialogs.
<li> Thanks to Nicolas De Francesco, updated the
<i>Edit&gt;Selection&gt;Fit Rectangle</i> command so that
it produces more predictable results.
<li> Thanks to Philippe Carl, <i>File&gt;Import&gt;Image Sequence</i>
no longer limits the number of files that can be
imported to 40 when "Open as separate images"
is enabled.
<li> Thanks to Fred Damen, improved recording of the 
ROI Manager's "Open..." and "Save..." commands, and
made the open(path) and save(path) methods public.
<li> Thanks to Michael Schmid, the 
<i>File&gt;Import&gt;Image Sequence</i> command no
longer creates excessive image IDs.
<li> Thanks to Michael Schmid, added the FolderOpener.openProcessor()
method, used by the FileInfoVirtualStack class.
<li> Thanks to Norbert Vischer, fixed a bug that caused the
<i>Process&gt;Filters&gt;Convolve</i> command to sometimes not
be correctly recorded.
<li> Thanks to Fred Damen, fixed a bug that caused a null pointer
exception when the <i>File&gt;Import&gt;Results</i> dialog
was canceled.
<li> Thanks to Ved Sharma, fixed a bug that caused an invalid
macro error when assigning a string value returned by a user
defined function to an array element.
<li> Thanks to Fred Damen, fixed a bug that caused the RoiManager.save()
method to always return true.
<li> Thanks to Ved Sharma, fixed a bug that caused the
ROI Manager's "OR (Combine)" command to not work as
expected if the first ROI was composite.
<li> Thanks to Philippe Carl, fixed a bug that caused the
<i>File&gt;Import&gt;Image Sequence</i> command to not
work as expected when importing stacks and the 
"Open as separate images" option was enabled.
<li> Thanks to Philippe Carl, fixed a bug that caused the
<i>Image&gt;Overlay&gt;Flatten</i> command to not work
with ROIs, or the ROI Manager in "Show All" mode, on
composite  images.
<li> Thanks to Rodrigo Goncalves, fixed a bug that caused
the <i>File&gt;Save As&gt;Image Sequence</i> command to
display multiple error messages when the specified directory
did not exist.
<li> Thanks to Herbie Gluender, fixed a bug the caused the
exit(msg) macro function to fail when the argument was a
number or a call to a user-defined function.
<li> Thanks to Jerome Mutterer, fixed a typo in
OpenDialog.java that caused the GitHub version of ImageJ
to fail to compile.
<li> Thanks to Daniel Nebdal, fixed a bug that caused the
<i>Plugins&gt;Macros&gt;Edit</i> command to not open
".py" and ".bsh" files.
<li> Thanks to Remi Berthoz, fixed a bug that caused the
<i>Image&gt;Type&gt;RGB Stack</i> command to not work
correctly with RGB stacks that had multiple slices
and multiple frames.
<li> Thanks to Stein Rorvik, fixed a bug that caused
the Property.setSliceLabel() macro function to sometimes
not work as expected with single images. 
<li> Thanks to Ved Sharma, fixed a regression that caused the 
roiManager("Set Fill Color",color) macro function to fail when
used with a text selection.
<li> Thanks to 'natalia', fixed a 1.52p regression that caused
FITS images to open flipped vertically.
<li> Thanks to "J Xiong", fixed a regression that caused the
particle analyzer to not work the same as it did in ImageJ 1.52
with binary images that were not thresholded and the "Black background"
options was not set.
<li> Thanks to Hyung-song Nam, fixed a 1.53f regression that caused
menus to unexpectedly popup when using the "hand" tool to
scroll through images.
</ul>

<li> <u>1.53k 6 July 2021</u>
<ul>
<li> Thanks Mike Nelson, 16-bit images are
inverted using the full pixel value range (0-65535) or, if set,
using the "Unsigned 16-bit range" in the "Set" option of the
<i>Image&gt;Adjust&gt;Brightness/Contrast</i> dialog.
<li> Thanks to Alan Brooks, added the macOS-specific
MacAdapter9 plugin, which, on Java 9 or later,
supports drag and drop on the ImageJ.app and the
"About ImageJ" command.
<li> Thanks to Romain Guiet, the ROI Manager's
"Associate 'Show All' ROIs with slices" option is
now enabled by default.
<li> Thanks to Gilles Carpentier, the particle analyzer now assumes
the threshold is 255 unless "Black background" is not set,
the image does not have an inverted LUT and fewer than
half the pixels have a value of zero, in which case
the threshold is set to zero.
<li> Thanks to 'pdd2110', added the Property.setSliceLabel(label)
macro function.
<li> Thanks to 'John D.', added the GenericDialog.addButton() method
(<a href="http://wsr.imagej.net/plugins/Button_Example.java">example1</a>,
<a href="http://wsr.imagej.net/plugins/Button_Example2.java">example2</a>).
<li> Thanks to 'Oodegard', fixed a bug that caused the
"Auto-next slice" option of the point tool to not
work as expected with hyperstacks.
<li> Thanks to Michael Schmid, fixed a bug that caused
NaN values in tables read from a file to be
strings instead of numbers.
<li> Thanks to Gabriel Landini and Michael Schmid, fixed a bug
that caused the "Top Hat" filter to fail when applying it to a
stack one slice at a time.
<li> Thanks to Laurent Thomas, fixed a bug that caused the
<i>Image&gt;Stacks&gt;Set Slice</i> command to not
work as expected with hyperstacks.
<li> Thanks to Laurent Thomas, fixed a bug that caused hyperstacks
to be displayed incorrectly if the Z or T sliders where 
moved quickly and the images were slow to load.
<li> Thanks to Michael Schmid, fixed a bug that sometimes caused
the WindowManager.getIDList() method to throw an exception.
</ul>

<li> <u>1.53j 13 May 2021</u>
<ul>
<li> Thanks to 'VolkerH', the table created by
<i>Image&gt;Overlay&gt;List Elements</i> now
displays row numbers and arrow selection 'X' and 'Y'
values are the coordinates of the arrow tip.
<li> Thanks to Stein Rorvik, added the Color.setForegroundValue()
and Color.setBackgroundValue() macro functions and the
Toolbar.setForegroundValue(), Toolbar.setBackgroundValue(),
ImageProcessor.setGlobalForegroundColor() and
ImageProcessor.setGlobalBackgroundColor() methods.
<li> Thanks to Norbert Vischer, added the IJ.checksum() macro
function, which returns the MD5 (or SHA-256) checksum from
a string or file
(<a href="http://wsr.imagej.net/macros/ChecksumTest.txt">example</a>).
<li> Thanks to Michael Schmid, added the
Fit.doWeightedFit(equation,x,y,weights[,initialGuesses])
macro function.
<li> Thanks to Norbert Vischer, added the Plot.removeNaNs macro function.
<li> Thanks to Laurent Thomas, added support for scrollbars in 
GenericDialog TextAreas.
<li> Thanks to Fred Damen, added the Zoom.in(imp), Zoom.out(imp),
Zoom.unzoom(imp) and Zoom.maximize(imp) methods.
<li> Thanks to John Dunsmuir, added the PointRoi.addPoint(x,y,position) method.
<li> Thanks to Fred Damen, fixed bugs that caused programmatic image
window zooming to not work reliably
(<a href="http://wsr.imagej.net/macros/js/ZoomTest.js">example</a>).
<li> Thanks to Michael Schmid, fixed a bug with HTMLDialogs that
caused the initial scroll position to be at the end when displaying
more text than what fits in the window.
<li> Thanks to 'Sethur', fixed bugs that caused DICOM
files using newer VRs (from 2014 and later), such as
UC and UR, to fail.
<li> Thanks to Bruno Vellutini, fixed a bug that caused images rotated
interactively using the "Enlarge image" and "Preview" options to not
have the grid lines removed after the rotation.
<li> Thanks to Jerome Mutterer, fixed a bug that caused the
Prefs.savePreferences() method to throw a null pointer
exception if the "ImageJ" window was not open.
<li> Thanks to Stein Rorvik, fixed a bug that caused the slice
label to be incorrect after importing an image sequence and
"Start" was greater than 1 and "Count" was 1.
<li> Thanks to Stein Rorvik, fixed a bug that caused
the <i>Images to Stack</i> command to ignore slice labels
when the "Use titles as labels" option was not enabled.
<li> Thanks to 'ghf', worked around a Fiji bug that caused the
<i>File&gt;Import&gt;Image Sequence</i> command to fail
if the folder contained a ".h5" file.
<li> Thanks to Jerome Mutterer, fixed bugs that caused the
Stack.setDisplayMode(), Stack.setSlice(), Stack.setFrame()
and Stack.setPosition() macro functions to not work as expected
in batch mode, and the ImagePlus.setDisplayMode(),
ImagePlus.setZ(), ImagePlus.setSetT() and
ImagePlus.setPosition() methods to not work as expected when
the image was not displayed.
<li> Thanks to Nicolas Montes, fixed a bug that caused the
particle analyzer to throw an exception when both the
"Composite ROIs" and "Show: Outlines" options where used.
<li> Thanks to Christian Kremser, fixed a 1.53i regression
that caused macro statements like "n=Dialog.getNumber()+1"
to generate and error.
<li> Thanks to Christian Tischer, fixed a regression that
caused the ROI Manager to not set the hyperstack position
of ROIs without a c,z,t position.

</ul>

<li> <u>1.53i 24 March 2021</u>
<ul>
<li> Thanks to Jerome Mutterer, added the
 "Apply LUTs" checkbox to the command finder
(<i>Plugins&gt;Utilities&gt;Find Commands</i>).
<li> Thanks to Norbert Vischer, the current line number,
or selection range, in Editor, Table or Log windows, 
is displayed in the status bar. The total number of lines is
displayed after <i>Select All</i>.
<li> Thanks to Norbert Vischer, ImageJ now corrects the orientation of
phone camera photos. Does not work on Fiji because it is
missing Exif_Reader.jar.
<li> Improved the Plugins>Utilities>Benchmark command. It now
suppresses subordinate status bar messages and displays
subordinate progress bars as dots. 
<li> Thanks to Peter Haub, the particle analyzer displays
"ParticleAnalyzer: threshold has not set; assumed to be min-max"
in the Log window if it was not called from a macro and a
threshold was not set.
<li> Thanks to Laurent Thomas, <i>File&gt;Save As&gt;Image Sequence</i>,
when "Use slice labels as names" is enabled, now supports file names as
long as 111 characters, excluding the extension.
<li> Thanks to Michael Schmid, ImageJ displays "horizontal" in the
image info line of column average plots and "vertical" with
row average plots.
<li> Thanks to Jerome Mutterer, added the showStatus(message,options)
macro function and the IJ.showStatus(message,options) method
 (<a href="http://wsr.imagej.net/macros/FlashingStatusMessages.txt">example</a>).
<li> Added the Overlay.update(index) macro function.
<li> Added the ImagePlus.setBorderColor() method,
used by <i>Image&gt;Color&gt;Split Channels</i> to
colorize image borders.
<li> Thanks to Laurent Thomas, added the ImageStack.getShortStackLabel(n,max),
Zoom.toSelection(imp), Zoom.set(imp,mag) and Zoom.set(imp,mag,x,y)
methods.
<li> Thanks to Herbie Gluender, fixed a bug that caused the status bar
to stop being updated after activating an overlay selection.
<li> Thanks to Fred Damen, fixed a bug with one slice stacks that caused the
slice label to not be displayed on the image info line or in the
<i>Image&gt;Show Info</i> window.
<li> Thanks to Antoneta, fixed a bug with the <i>Flatten</i> command that caused
multi-point selections on stacks to lose counter information.
<li> Thanks to Herbie Gluender, fixed a bug that caused unexpected overlay
entries after running the particle analyzer with the "Add to manager" option
in a batch mode macro.
<li> Thanks to Norbert Vischer, fixed a bug that caused string functions
added in ImageJ 1.52t (s.contains(), s.endsWith(), s.indexOf(), s.lastIndexOf(),
s.lengths.startsWith()) to return a string instead of a number when used
in an assignment statement.
<li> Thanks to Robert Haase, fixed a bug with the roiManager("select",index) 
macro function that caused it to sometimes restore ROIs at the
wrong position.
<li> Thanks to Laurent Thomas, fixed a bug that caused the
ContrastEnhancer.stretchHistogram() methoid to not work as
expected with stacks.
<li> Thanks to Michael Schmid, fixed a bug that caused
WaitForUserDialogs to not be scaled on high-resolution
screens.
<li> Thanks to Stein Rorvik, fixed a macro interpreter bug that caused
if statements using string functions to sometimes fail
(e.g., "if (getTitle.length>10) ...").
<li> Thanks to Norbert Vischer, fixed a bug that caused the
first column of tables copied to the clipboard to be missing
if the table did not have row numbers and the
"Copy row numbers" option in
<i>Edit&gt;Options&gt;Input/Output</i> was not enabled.
<li> Thanks to Shayna Sosnowik, fixed a 1.53g regression that caused
the "Properties..." command in the ROI Manager to not work as 
expected when changing the stroke color.
<li> Thanks to Stein Rorvik, fixed a 1.53i regression that caused
the str.trim() macro function to sometimes fail.
</ul>

<li> <u>1.53h 04 February 2021</u>
<ul>
<li> Thanks to Laura Shankman, added the <i>Image&gt;Overlay&gt;Measure Overlay</i>
command.
<li> Thanks to Jerome Mutterer, added the <i>Help&gt;Examples&gt;Macro&gt;Colors of 2021</i>
example, which runs more smoothly with ImageJ 1.53h20 or later, where ROIs are not
drawn in batch mode.
<li> Added the <i>Help&gt;Examples&gt;JavaScript&gt;Dialog Demo</i> and
<i>Help&gt;Examples&gt;Macro&gt;Save All Images</i> examples.
<li> Thanks to Christophe Leterrier, <i>Image&gt;Type&gt;RGB Color</i>
converts hyperstacks of HSB stacks to stacks of RGB images.
<li> Thanks to Alex Zwetsloot, line selections are no longer activated by double clicks
with the segmented and freehand line tools.
<li> Thanks to Norbert Vischer, added the Color.set(string), Color.set(number),
Color.foreground, Color.background, Color.setForeground(r,g,b),
Color.setBackground(r,b,g), Color.setForeground(string),Color.setBackground(string),
Color.toString(r,g,b), Color.toArray(color), Color.setLut(reds, greens, blues) and
Color.getLut(reds, greens, blues) macro functions.
<li> Thanks to Raniere Silva, added the Overlay.xor() macro function.
<li> Added the Overlay.fill() macro function.
<li> Thanks to Stein Rorvik, added the File.isFile() macro function.
<li> Thanks to Raniere Silva, added the getDir("cwd") ("current working directory")
macro function.
<li> Added the Roi.getFloatBounds() and Image.title macro functions.
<li> Thanks to Alan Brooks, added the Toolbar.setIcon() method
 (<a href="http://wsr.imagej.net/macros/tools/ToggleIconTool.txt">example1</a>,
 <a href="http://wsr.imagej.net/macros/tools/Animated_Icon_Tool.txt">example2</a>,
 <a href="http://wsr.imagej.net/macros/tools/Googly_Eyes_Tool.txt">example3</a>,
 <a href="http://wsr.imagej.net/macros/tools/Scrolling_Tool_Icons.txt">example4</a>.
  <a href="http://wsr.imagej.net/macros/tools/Random_Color_Picker_Tool.txt">example5</a>).
<li> Added the Overlay.xor() and Roi.xor() methods.
<li> Thanks to Robert Kasumba, added the OverlayBrushTool.setWidth() method.
<li> Thanks to Laurent Thomas, added the getColumn(String), getColumnAsStrings(String)
and getActiveTable() methods to the ResultsTable class.
<li> Thanks to Dyuks, fixed a bug that caused the TIFF reader to sometimes throw
an exception when opening LZW-compressed 16-bit TIFFs.
<li> Thanks to Michael Schmid, fixed a bug that could cause the JpegWriter
to throw a NullPointerException if JAI ImageIO was installed.
<li> Thanks to Michael Cammer, fixed a bug that caused the selectWindow(title)
macro function to not work with minimized windows on Windows.
<li> Fixed a bug that caused all tools to stop working after attempting
to use the polygon, segmented line or angle tool on
<a href="https://ij.imjoy.io/">ImageJ.JS</a>.
<li> Thanks to Gabriel Landini, fixed a bug that caused the B&C tool
to sometimes perform an Undo operation on RGB images.
<li> Thanks to Raniere Silva and Jan Eglinger, fixed a bug that
caused an exception when saving the table created by
<i>Image&gt;Overlay&gt;List Elements</i> in .csv format.
<li> Thanks to Raniere Silva, fixed bugs that caused the open(path)
and roiManager(“Open”,path) macro functions, in macros run 
from the command line, to not work as expected when ‘path’
was just a file name.
<li> Thanks to Michael Schmid, fixed bugs that caused the roi.getBounds()
method and getSelectionBounds() macro function to not work 
as expected with polyline, point and straight line selections on
images zoomed more than 150%.
<li> Thanks to Christian Tischer, fixed a bug that caused the
<i>Image&gt;Overlay&gt;List Elements</i> command to incorrectly
report positions of time series overlays.
<li> Thanks to Laurent Thomas, fixed a bug that sometimes caused
GenericDialogs to not open URLs bound to "Help" buttons.
<li> Thanks to Jan Eglinger, fixed a bug that caused the selection
brush tool to behave inconsistantly when the brush width was odd
and the image was hightly magnified.
<li> Thanks to Christian Tischer, fixed a bug that caused overlay
calibration bars to be displayed incorrectly on images zoomed
less than 100%.
<li> Thanks to Norbert Vischer, fixed a bug that caused the
selectWindow("Results") macro function to sometimes not
work as expected.
<li> Fixed a 1.53h17 regression, caused by building ij.jar for Java 8,
that prevented Fiji from launching.
<li> Thanks to Dominik Schienstock, fixed a 1.52q regression that
caused some filters to throw exceptions in headless mode.
</ul>

<li> <u>1.53g  4 December 2020</u>
<ul>
<li> Thanks to Jerome Mutterer, added a "Run" button to Editor
 windows when the file name ends with ".ijm", ".js", ".bsh" or ".py".
 <li> The "Overlay Masks" option in the particle anayzer now
 displays masks in colors taken from the Glasbey LUT.
 <li> Thanks to J Xiong, added "Overlay" and  "Composite ROIs"
 checkboxes to the particle analyzer
 (<a href="http://wsr.imagej.net/macros/MeasureWithOrWithoutHoles.ijm">example</a>).
 <li> Thanks to Michael Doube, added an IntProcessor class that provides
 support for signed 32-bit int images
  (<a href="http://wsr.imagej.net/macros/js/CreateAndDisplayIntImage.js">example</a>).
 <li> Thanks to Christian Tischer, the Recorder supports Python.
 <li> Thanks to 'Eljonco', the "ExpandableArrays" macro option
 is now enabled by default.
 <l> Thanks to Peter Haub, added the String.pad(n,length)
 macro function.
 <li> Thanks to Wilhelm Burger, added the addEnumChoice() and
 getNextEnumChoice() methods to the GenericDialog class
 (<a href="http://wsr.imagej.net/plugins/GenericDialog_With_Enums.java">example</a>).
<li> Thanks to 'davidC', added the ij.gui.HistogramPlot class.
<li> Thanks to Stein Rorvik, added the ImageCanvas.setLongClickDelay()
and Toolbar.setLongClickDelay() methods.
<li> Thanks to 'Dr. Njitram', added the recordable
SubstackMaker.run(imp,rangeOrList) method.
<li> Thanks to Albert Cardona, modified the ImageJ.keyPressed() method
so that, if the KeyEvent is consumed, it returns immediately.
<li> Thanks to Wei Ouyang, replaced the "Duplicate..." command
in the default image contextual menu with "Duplicate Image",
which ignores any selection and duplicates the entire image.
<li> Thanks to Stein Rorvik, fixed a bug that sometimes caused images
to be incorrectly added to the <i>Window</i> menu.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
<i>File&gt;Show Folder&gt;Image</i> command to not
work with stacks opened using
<i>File&gt;Import&gt;Image Sequence</i>.
<li> Thanks to 'muniak' and 'mountain_man', fixed a bug that
caused the Scaler.resize() method to return an image with
a calibration of Inf x Inf.
<li> Thanks to Stein Rorvik, fixed a bug that caused a list of 12 'w' letters
to appear after the Group entry in the ROI Properties dialog when it
was called from a macro.
<li> Thanks to 'davidC', fixed a bug that caused batch mode macros that
created hundreds of histograms to fail.
<li> Thanks to 'chrk139', fixed a bug that caused the drawOval() and fillOval()
macro functions to not work for images larger than 2^29 pixels.
<li> Thanks to Laurent Thomas, fixed a bug where changing
the group attribute from a group&gt;0 to 0 in
the <i>ROI Manager&gt;Properties</i> dialog did
not work as expected.
<li> Thanks to Gilles Vanwalleghem, fixed a bug that caused the
run(“Reduce Dimensionality…”) macro function to throw a
null pointer exception in Fiji headless mode.
<li> Thanks to Laurent Thomas and Hollandi Reka, fixed a bug
that caused the ROI group of saved composite selections
to not be restored.
<li> Thanks to Martin Hohne, fixed a bug that caused the getValue("X")
and getValue("Y") macro functions to not work as expected with
line selections.
<li> Thanks to J Xiong, fixed a v1.50 regression that caused the 
particle analyzer to not work as expected when when using the
“Exclude on edges” option and a composite selection.
<li> Thanks to Fred Damen, fixed a 1.53c regression that caused
the GenericDialog.getFont() method to sometimes return null.
<li> Fixed a regression that caused the particle analyzer to
sometimes fail on MacOS.
</ul>

<li> <u>1.53f  25 October 2020</u>
<ul>
<li> Thanks to Wei Ouyang, tool bar and image popup menus are
triggered by long presses in addition to right clicks, needed
because right clicks are not normally possible when
<a href="https://ij.imjoy.io/">ImageJ.JS</a>
is running on Android and iOS devices.
<li> Thanks to Wei Ouyang, added a popup menu to the
magnifying glass tool icon.
<li> Added a popup menu triggered on a right click or
long press inside a selection.
<li> Updated the built in toolbar "Dev" menu.
<li> Thanks to Michael Schmid, the text in a text selection can
be edited in the <i>Edit&gt;Selection&gt;Properties</i>
dialog.
<li> Thanks to Stein Rorvik, the <i>File&gt;Import&gt;Image Sequence</i>
dialog is used when drag and dropping a folder on the
"ImageJ" window.
<li> Thanks to Michael Schmid and Thomas Fischer, <i>Undo</i> works with
overlays when translating and rotating images, and the "Overlay only"
checkbox is only shown in the <i>Translate</i> dialog when there
is an overlay.
<li> Thanks to Robert Haase, added the <i>Edit&gt;Options&gt;Fresh Start</i>
command, which closes all images, empties the ROI Manager, clears the
Results table and enables the "Black background" option. 
<li> Thanks to Conner Phillips and Stein Rorvik, the <i>Reslice</i> command
is faster on Windows when re-slicing from "Left" or "Right" and it
uses an ordinary progress bar when run from a macro.
<li> Thanks to Stein Rorvik, added an "Open as separate images" checkbox
to the <i>File&gt;Import&gt;Image Sequence</i> dialog.
<li> Thanks to Stein Rorvik, added "Foreground..." and "Background..." entries
to the color picker tool popup menu.
<li> Thanks to 'MIKEIII' and Dmitry Fedorov, added the Image.width, Image.height,
Image.copy and Image.paste(x,y) macro functions
(<a href="http://wsr.imagej.net/macros/PasteDemo.txt">example</a>).
<li> Thanks to Stein Rorvik, added the Array.filter(arr,str),
Math.toRadians(degrees) and Math.toDegrees(radians) functions.
<li> Thanks to Nima Hojat, added the ResultsTable.addRow()
method. For an example, run
<i>Help&gt;Examples&gt;JavaScript&gt;Sine/Cosine Table</i>.
<li> Thanks to Philippe Carl, fixed a bug that caused the
RoiManager.getSelectedIndexes() method to sometimes not
work as expected.
<li> Thanks to Christian Tischer, fixed a bug that slowed saving of
virtual stacks in TIFF format.
<li> Thanks to Thomas Fischer, fixed a bug that caused the
dynamic "Value" and "Count" values in HIstogram windows
to sometimes not be displayed correctly.
<li> Thanks to Gaurav Joshi, fixed a bug that caused the 
Ctrl+F (<i>Edit&gt;Fill</i>) keyboard shortcut on Windows, when
used on a stack, to not display the "Proces Stack?" dialog.
<li> Thanks to 'Quiroz-1', fixed a 1.53e regression that caused
the imageCaculator() macro function do somethimes not
work as expected.
<li> Thanks to Pradeep Rajasekhar and Jan Eglinger, fixed a 1.52
regression that caused the <i>Analyze Skeleton</i> plugin to output
incorrect Results tables.
<li> Thanks to 'tongtao', fixed a regression that caused the
<i>Edit&gt;Copy to Image Info</i> command in the text
editor to fail. 
<li> Thanks to Stein Rorvik, fixed a 1.53c regression in the AVI Reader
that caused it to throw a null pointer exception.
<li> Thanks to Eric Perlman, fixed a 1.52 regresion that caused the
IJ.getImage() method to sometimes display model error dialogs.
</ul>

<li> <u>1.53e  16 September 2020</u>
<ul>
<li> Thanks to Michael Schmid, the color picker tool has
a new icon and a right click drop down menu.
<li> The "Black background" option is no longer
saved in the preferences file. Add
setOption("BlackBackground",true) to Edit>Options>Startup
to have it set 'true' on startup.
<li> Thanks to Kees Straatman, improved recording of the
<i>Edit&gt;Selection&gt;Add to Manager</i> command.
<li> Thanks to Michael Ellis, added a module-info.java file,
used by the Java Module System, to the ImageJ source.
<li> Thanks to 'mkhapp', added the RoiManager.selected macro
function, which returns the number of selected ROIs in the
ROI Manager
(<a href="http://wsr.imagej.net/macros/SetGroupDemo.txt">example</a>).
<li>Thanks to Fred Damen, added the ImagePlus.copyToSystem() method.
<li> Thanks to Philippe Carl, fixed a bug that allowed multiple copies
of the Color Picker to be opened.
<li> Thanks to 'Ben', fixed a bug that caused the Table.get()
macro function to return strings instead of numbers.
<li>Thanks to Fred Damen and Michael Schmid, fixed a bug
that caused the run("Copy to System") macro function to
sometimes copy the wrong image to the system clipboard.
<li>Thanks to Fred Damen, fixed a bug that caused unreliable
zooming of images with selections when using the arrow keys
while holding the shift or control key down.
<li>Thanks to Fred Damen, fixed a bug that caused the
img3=ImageCalculator.run(img1,img2,operation) method
to return null if the 'operation' string did not contain
'create' or '32-bit'.
<li> Thanks to Martin Hohne, fixed a 1.53c regression that caused
the Counter popup menu in the Point Tool options Dialog
to not work as expected after switching to a different image.
<li> Thanks to Robert Svoboda, fixed a 1.53d regression on
Windows that could cause the getDirectory() macro function
to throw an exception or crash ImageJ.
<li> Thanks to Stein Rorvik, fixed a 1.53d regression that could cause
the run("Image Sequence...",options) macro function to fail.
</ul>

<li> <u>1.53d  20 August 2020</u>
<ul>
<li> Added drag and drop support to GenericDialog directory
and file fields, based on code from Fiji's GenericDialogPlus.
<li> The <i>File&gt;Import&gt;Image Sequence</i> and
<i>File&gt;Save As&gt;Image Sequence</i> comnands get the
directory using the new GenericDialog.addDirectoryField() method,
which is based on the very useful method with the same name
in Fiji's GenericDialogPlus class.
<li> The <i>File&gt;Import&gt;AVI</i> comnand gets the path to
the AVI file using the new GenericDialog.addFileField() method,
which is also from Fiji's GenericDialogPlus class.
<li> Thanks Michael Schmid, added the
<i>Process&gt;Filters&gt;Top Hat</i> filter.
<li> Thanks to William Berndt, added the <i>Image&gt;Type&gt;HSB (32-bit)</i>
command.
<li> Thanks to Laurent Thomas, added the <i>More&gt;&gt;Multi Crop</i>
command to the ROI Manager.
<li> Thanks to Zeynab Mousavi, the <i>Edit&gt;Selection&gt;Scale</i>
command uses the centroid instead of the center of the bounding
rectangle when "Centered" is checked in the dialog.
<li> The <i>Help&gt;About ImageJ</i> window is larger
and the text is drawn in an overlay.
<li> Thanks to Peter Bankhead, the MacAdapter class is now in the ij.plugin package.
<li> Thanks to Norbert Vischer, legend labels can be indexed or hidden
in the plot window More>>Legend... dialog.
<li> Thanks to Curtis Rueden, the sample images are
now loaded from https://imagej.net/images/.
<li> Thanks to Jerome Mutterer, the Color Picker now has a clipboard-copyable
TextArea containing the selected color in hex format.
<li> Thanks to Jeff Hardin, the <i>Image&gt;Hyperstacks&gt;Stack to Hyperstack</i>
command now works with virtual stacks not in CZT order.
<li> The Threshold tool's "Set" function disables
"Don't reset range" if the values set are outslide
of the current display range.
<li> The ImageStack class now accepts images of different types. Images
are converted to the type specified by the setBitDepth() method or to the 
type of the first image added.
<li> Added the Dialog.addDirectory() macro function
and the GenericDialog.addDirectoryField() method
(<a href="http://wsr.imagej.net/macros/tools/Square_Tool.ijm">example</a>).
<li> Added the Dialog.addFile() macro function
and the GenericDialog.addFileField() method.
<li> Added the Dialog.addImageChoice() macro function
and the GenericDialog.addImageChoice() method.
<li> Added the Overlay.cropAndSave() macro function
and the ImagePlus.cropAndSave() method
(<a href="http://wsr.imagej.net/macros/tools/Square_Tool.ijm">example</a>).
<li> Thanks to Laurent Thomas, added the RoiManager.multiCrop()
macro function and RoiManager.multiCrop() method.
<li> Thanks to Philippe Carl and Michael Schmid, added the
 LutLoader.getLut() method. For an example, run
<i>Help&gt;Examples&gt;JavaScript&gt;Show all LUTs</i>.
<li> Thanks to Philippe Carl, added the String.format() macro
function.
<li> Thanks to Laurent Thomas, added the ImagePlus.crop(Roi[]),
Overlay.createStackOverlay(Roi[]) and ImageStack.create(ImagePlus[])
methods. For an example, run
<i>Help&gt;Examples&gt;JavaScript&gt;Crop Multiple Rois</i>.
<li> Added the FolderOpener.open(path, width, height, options)
method, which opens a stack, or virtual stack, from a folder of
images that may differ in size.
<li> Added the ImageStack.setBitDepth() method.
<li> Thanks to Aryeh Weiss, added the HyperStackConverter.toStack()
method
(<a href="http://wsr.imagej.net/macros/js/HyperstackToStack.js">example</a>).
<li> Added the StackWriter.save() method.
<li> Thanks to 'bio7' and David Gault, fixed bugs that caused
IJ.isJava18() to return false and JavaScript to not work when
running Java 14 or later.
<li> Thanks to Vivek Gupta, fixed a bug that caused the
run("Add Selection...") macro function to ignore the
current selection's position.
<li> Thanks to Michael Cammer, fixed a bug that caused the contrast to constantly
change when scrolling through a stack and the Threshold window is open.
<li> Thanks to Gilles Carpentier, fixed a bug that caused
the Duplicate command to propose an incorrect name
when duplicating an image whose name ends in "-n", 
where 'n' is a digit.
<li> Thanks to Gabriel Landini and Michael Schmid, fixed a bug
that caused the <i>File&gt;Show Folder&gt;</i> commands
to not work on some Linux systems.
<li> Thanks to 'Nhaz', fixed a bug that caused the Fit.doFit() macro 
function to fail with equations containing "Math.erf()".
<li> Thanks to Michael Schmid, fixed preview and 
parallelization bugs in the RankFilters (Median, Mean, Minimum, etc.).
<li> Thanks to Herbie Gluender, fixed a bug that caused
Table.* macro functions to ignore custom tables
not displayed in the active window.
<li> Thanks to Philippe Carl and Michael Schmid, fixed a bug that
caused the High Resolution Plot command to not be
correctly recorded in Java(script) mode.
<li>Thanks to Gabriel Landini, fixed the
<i>Process&gt;Shadows&gt;Shadows Demo</i> command,
which was too fast on modern computers.
<li>Thanks to Jerome Mutterer, fixed a bug that sometimes
caused point measurements to not work as expected
(<a href="http://wsr.imagej.net/macros/js/MeasurePointBug.js">example</a>).
<li> Fixed issues with script-mode recording of file paths on Windows.
<li> On Macs, fixed a bug that caused the <i>ImageJ&gt;About ImageJ</i>
window to open slowly.
<li> Thanks to Michael Cammer, fixed a bug that caused the
s2=replace(s,s1,s2) and s2=s.replace(s1,s2) macro functions to fail
when 's1' was a single regular expression special character
and 's2' did not have a length of one.
<li> Thanks to Philippe Carl, fixed a bug that caused the  
<i>Image&gt;Stacks&gt;Tools&gt;Concatenate</i> command
to not preserve the "Info" properties.
<li> Fixed a 1.52r regression that caused ImageJ to hang
when saving images with fewer than 4 pixel in TIFF format.
<li> Thanks to Jan Brocher, fixed a 1.52u regression that caused
the <i>Edit&gt;Selection&gt;Enlarge</i> command to not work
as well as before.
<li> Thanks to 'jerr', fixed a 1.52 regression that made it impossible
to set the threshold by changing the textfield values.
<li> Thanks to 'Emil' and Pete Bankhead, fixed a 1.53c regression
that caused the <i>Analyze&gt;Plot Profile</i> command not work as
expected with segmented and freehand line selections on
spatially calibrated images.
<li> Thanks to Zeynab Mousavi, fixed a 1.52 regression that caused
the getResults() macro function to unexpectadly cause a
"No results found" error
(<a href="http://wsr.imagej.net/macros/bugs/GetResultRegression.txt">example</a>).
<li> Thanks to Sumin Kim, fixed a 1.52t regression that caused
<i>Stack to Images</i> image titles to not be the same as
before for stacks with names containing spaces.
</ul>

<li> <u>1.53c  26 June 2020</u>
<ul>
<li> Added the <i>Help&gt;Examples&gt;Tools&gt;</i>
submenu with five tools: Circle Tool, Star Tool, Point Picker,
Big Cursor and Annular Selection. These tools use
the new "//@AutoInstall" directive that automatically
adds them to the toolbar.
<li> Added the "//@AutoInstall" and "//@AutoInstallAndHide"
directives for automatically installing macros and tools
in newly opened .ijm and .txt files.
<li> Thanks to Louise Bishop, delete multiple points from
a multi-point selection by creating a new area selection
while holding down the alt key.
<li> Thanks to Gabriel Landini, the LUT name is saved
as an image property and displayed when you
type "i" (<i>Image&gt;Show Info</i>).
<li> Added support for 24x24 macro tool icons. The Big Cursor
and Annular Selection tools are examples.
<li> Double click on an overlay selection to activate it.
<li> Thanks to Christophe Leterrier and Christian Goosmann,
the <i>Image&gt;Scale</i>, <i>Image&gt;Adjust&gt;Size</i>,
<i>Image&gt;Transform&gt;Rotate</i>, <i>Translate</i>,
<i>Rotate 90 Degrees Right</i> and <i>Rotate 90 Degrees Left</i>
commands now work with overlays.
<li> Thanks to 'Emma', added sliders and an "Overlay only"
option to the <i>Image&gt;Transform&gt;Translate</i> command.
<li> The Color Picker is improved, including a new tool icon.
<li> Toolbar buttons are one pixel larger, making the "ImageJ"
window 20 pixels wider.
<li> Tool icons are bolder when the GUI scale is greater
than 1.0 and less the 1.5.
<li> Added a "Reset" button to the Edit dialog of the
<i>Plugins&gt;Utilities&gt;Commands</i> window.
<li> Thanks Jerome Mutterer, added the rainbow progress bar
easter egg, activated by switching to the angle tool and running
a command that uses a progress bar (e.g., a radius 50 median
filter on a 1000x1000 image).
<li> Thanks to Fred Damen, the <i>Compile and Run</i>
command now looks for library JAR files in both
plugins/jars and plugins/lib.
<li> Added the getDir("file") macro function, which returns the 
directory of the most recently opened or saved file.
<li> Thanks Jerome Mutterer, added the Overlay.activateSelectionAndWait()
macro function.
<li> Thanks to 'Eljonco', added the RoiManager.getName() macro function.
<li> Thanks to Laurent Thomas, added the RoiManager.setPosition()
macro function and method.
<li> Thanks to 'quatreulls', added the Table.saveColumnHeaders(boolean)
macro function and ResultsTable.saveColumnHeaders(boolean) method.
<li> Thanks to Laurent Thomas, added the ImagePlus.crop(Roi[]) and
ImagePlus.crop(Roi[],options) methods
(<a href="http://wsr.imagej.net/macros/js/CropMultipleRois.js">JavaScript example</a>).
<li> Thanks to Bill Christens-Barry, added the TextWindow.setFont(name,style,size)
method for setting the font used in the Log window. For monospaced text, set
 'name' to "Monospaced"
(<a href="http://wsr.imagej.net/macros/examples/MonospacedText.txt">example</a>).
<li> Thanks to Gilles Carpentier, fixed a bug that caused NaN results
when measuring line selections created by <i>Edit&gt;Selection&gt;Area to Line</i>
from particle analyzer selections touching the right or
bottom edge of the image.
<li> Thanks to Norbert Vischer, fixed bugs that caused hyperstacks
with a "select all" selection to not be correcty copied to
the system clipboard.
<li> Thanks to Joe Want, fixed a bug that caused the macro interpreter to
sometimes generate an invalid "Numeric return value expected" message.
<li> Thanks Jerome Mutterer, fixed a bug that caused the
Roi.activateSelection(index) macro function to not work as expected
when called twice with the same index.
<li> Worked around a Java 8/Windows 10 bug that caused the
"ImageJ" window menu bar font size to become very small
after increasing the GUI scale.
<li> Thanks to Romain Guiet and Jan Eglinger, fixed a bug that caused
the multi-point tool to always reset the counter to 0.
<li> Fixed a bug that caused the <i>Edit&gt;Selection&gt;Fit Spline</i>
command to leave an incomplete progress bar.
<li> Fixed a bug that caused the Editor's Compile and Run "Save as" dialog
to sometimes not default to a folder inside the plugins folder.
<li> Thanks to Laurent Thomas, fixed a bug in <i>ROI Manager&gt;Properties</i>
that caused it to not change the position of multiple ROIs.
<li> Thanks to Michael Schmid, fixed a bug that could cause an
exception with plugins using a DialogListener.
<li> Thanks to Michael Schmid, fixed a bug that could cause the
"Label Points" checkbox in Point Tool Options dialogs to be ignored.
<li> Thanks to Christian Tischer, fixed a bug that caused the macro
interpreter to not generate an "Undefined variable" error with
statements like "v=v+1".
<li> Thanks to Garbriel Landini, fixed a 1.52m regression that caused
histogram peaks to extend above the frame. 
<li> Thanks to Stein Rorvik, fixed a 1.52u regression that caused
<i>File&gt;Import&gt;Image Sequence</i> to display unexpected
error messages in the Log window.
</ul>

<li> <u>1.53b  31 May 2020</u>
<ul>
<li> Thanks to Jerome Mutterer, added the "Overlay Editing Tools"
toolset and the  "Label Maker" tool to the toolbar's  "&gt;&gt;"
menu. Shift click on a toolset or tool in the "&gt;&gt;" menu to
view the macro source code.
<li> Thanks to Laurent Thomas, added the 
<i>Edit&gt;Options&gt;Roi Defaults</i> command, which
adds support for ROI group names. Double
click on the rectangle tool to run this command.
<li> The group name, "Stroke Color:" field and the selection color
are dynamically updated as the group number is changed in the
<i>Edit&gt;Selection&gt;Properties</i> dialog.
<li> Thanks to Jerome Mutterer, added support for
tool icons read from image files located in the
macros/toolsets/icons/ folder. The syntax looks like<br>
<i>macro "Test Tool - icon:833.png" { }</i>.
<li> Thanks to Erod Baybay, added the Roi.setPosition(slice) macro function.
<li> Thanks to Jerome Mutterer, added the Overlay.indexAt(x,y),
Overlay.removeRois(name) and Overlay.getBounds(index,x,y,width,height)
macro functions.
<li> Thanks to Stein Rorvik, added the Roi.setJustification(str),
Roi.setFontSize(size), Property.setList(str) and Property.getList
macro functions.
<li> Added the setOption("InterpolateLines",boolean) macro function.
<li> Thanks to Adrian Martin, added the setOption("FlipFitsImages",true)
macro function.
<li> Thanks to Laurent Thomas, added the Roi.getGroupNames
and Roi.setGroupNames() macro functions.
<li> Thanks to Jan Eglinger, moved initialization of the okay and cancel
buttons in GenericDialog into the constructors.
<li> Thanks to Hidenao Yamada, fixed a bug that caused the
FileInfoVirtualStack.deleteLastSlice() method to not work.
<li> Thanks to Tom Kazimiers, fixed spelling of the ARTIST tag
in the TiffDecoder.
<li> Thanks to Jerome Mutterer and Michael Schmid, fixed a rounding
error that caused the <i>Measure</i> command to not correctly
measure point selectons with non-integer coordinates.
<li> Thanks to Herbie Gluender, fixed bugs that caused the
Rename, Duplicate, Sort and Plot Results table commands
to not work if the table did not contain a ResultsTable object.
<li> Thanks to Norbert Vischer, fixed a bug that caused the
<i>Stack to Hyperstack</i> command to throw an exception.
<li> Thanks to 'Hayato', fixed a bug that caused the
roiManager("measure") macro function to be slow on
Windows when measuring thousands of ROIs.
<li> Thanks to Gilles Carpentier, fixed a bug that caused the
<i>Stack to Hyperstack</i> command to unexpectedly display
the output image in batch mode.
<li> Thanks to Madison Williams, fixed a 1.52o regression that caused tables
created by the Cell Counter plugin to be empty.
<li> Thanks to Ron DeSpain, fixed a 1.52u regression that caused
incorrect positions to be shown in the status bar after using the
arrow keys to move line selections.
<li> Thanks to Stein Rorvik, fixed a 1.52t regression that caused
the TextRoi.setJustification() method to sometimes not work
as expected.
<li> Thanks to 'hwada', fixed a 1.52t regression that changed the order
of the points returned by Line.getFloatPolygon().
</ul>

<li> <u>1.53a  4 May 2020</u>
<ul>
<li> Thanks to Michael Ellis, added support for saving and restoring
persistent image properties via the Property.set(key,value) and
Property.get(key) macro functions and the setProp(key,string),
getProp(key), setProp(key,double) and getNumericProp(key) methods
(<a href="http://wsr.imagej.net/macros/js/ImageProperties.js">JavaScript example</a>).
<li> Removed file sizes from entries in the <i>File&gt;Open Samples&gt;</i> submenu.
Macros that use the old entries (e.g. "Blobs (25K)") continue to work.
<li> Thanks to Laurent Thomas, the Overlay and RoiManager classes are now iterable.
Plugins can use "for (Roi roi : rm)" instead of "for (int i = 0; i != rm.getCount(); i++)".
In JavaScript, use "for each (roi in rm)"
(<a href="http://wsr.imagej.net/macros/js/ListOverlayRois.js">example</a>).
<li> Thanks to Norbert Vischer, added the [&n] macro shortcut notation 
that allows shortcuts to be used on both numerical
keypads and normal (laptop) keyboards.
(<a href="http://wsr.imagej.net/macros/examples/NumpadMacroShortcuts.txt">example</a>).
<li> Thanks to Richard Boardman, increased the BufferedOutputStream
buffer size in the FileSaver class to 32K and added the static
FileSaver.setBufferSize(int) method.
<li> Thanks to Michael Schmid, added the Plot.setOptions() macro function.
See <i>Help&gt;Examples&gt;Plots&gt;Plot Results</i> for an example.
<li> Added the Property.get(key), Property.set(key,value), Property.getInfo,
Property.getSliceLabel, Property.setSliceLabel(string) and
Property.getDicomTag(string) macro functions.
<li> Thanks to Michael Schmid, added the Plot.getCurrentFont(),
Plot.getDefaultFont() and Tools.getNumberFromList() methods.
<li> Thanks to Herbie Gluender, added the GenericDialog.getLabel()
and FHT.getRawPowerSpectrum() methods.
<li> Thanks to Kenneth Sloan, added the ImageProcessor.getForegroundValue()
method.
<li> Thanks to Curtis Rueden, added the GUI.getParentFrame() method
and made GenericDialog.getParentFrame() private again.
<li> Thanks to Hidenao Yamada, fixed a bug that caused
the getDirectory() and getFileName() methods of the
FileInfoVirtualStack class to always return null.
<li>Thanks to Norbert Vischer, fixed a bug that caused
the <i>File&gt;Import&gt;Image Sequence</i> command
to not ignore subdirectories.
<li> Thanks to Michael Cammer, fixed a 1.52v regression that caused
recording to not work correctly when Preview was checked in a filter dialog.
<li> Fixed a 1.52o regression that caused the 
<i>Help&gt;Examples&gt;JavaScript&gt;FFT Filter</i>
script to display an error message.
<li> Thanks to 'Eljonco', fixed a 1.52v regression that caused the Threshold tool to 
sometimes freeze ImageJ.
</ul>

<li> <u>1.52v  11 April 2020</u>
<ul>
<li> Thanks to Norbert Vischer, macro error messages include the call stack.
(<a href="http://wsr.imagej.net/macros/TestCallStack.txt">example</a>). 
<li> Added a "Set default directory" code choice to the
 <i>Edit&gt;Options&gt;Startup</i> dialog.
<li> Thanks to Laurent Thomas, the RoiManager class is now iterable.
<li> The  run("Viridis") macro function now works on Fiji
(<a href="http://wsr.imagej.net/macros/examples/ShowResultsInOverlay.txt">example</a>).
<li> Thanks to Fred Damen, Java compiler error messages use the default editor font.
<li> Thanks to Fred Damen and Michael Schmid, added the Math.erf(x) macro function.
<li> Added the Overlay.useNamesAsLabels(boolean) macro function
(<a href="http://wsr.imagej.net/macros/examples/ShowResultsInOverlay.txt">example</a>).
<li> Thanks to Michael Schmid, added the Fit.getEquation(index,name,formula,macroCode)
macro function
(<a href="http://wsr.imagej.net/macros/TestCurveFitMacroCode.txt">example</a>).
<li> Thanks to 'Odinsbane', added the ByteProcessor.skeletonize(foreground)
method, where 'foreground' is either 0 or 255.
<li> Thanks to Laurent Thomas, added the ResultsTable.getResultsTable(title) method.
<li> Thanks to 'Max1', fixed a bug that caused the
<i>Edit&gt;Selection&gt;Scale</i> command to not maintain
the selection name, group, fill color, point type and point size.
<li> Thanks to 'Odinsbane', fixed a bug that caused the ByteProcessor.skeletonize()
method to not work correctly with objects touching the image edge.
<li> Thanks to Stefan Helfrich and Olivier Burri, fixed a bug that caused the
position of ROIs added to the ROI Manager using RoiManager.setRoi()
to sometimes change. 
<li> Thanks to Michael Schmid, fixed a bug that sometimes caused
GenericDialogs to throw an exception.
<li> Thanks to Jeremy Adler, fixed a bug where changing the LUT
resets the display range.
<li> Thanks to 'Sh_Ty', fixed a bug the caused the 
<i>Analyze&gt;Tools&gt;Calibration Bar</i> command to throw
an exception in headless mode.
<li> Thanks to Michael Schmid, fixed a bug that caused
plots with custom symbols to use the wrong color
or generate an error.
<li> Thanks to Nicolas De Francesco, fixed a 1.52u regression that caused
incorrect straight line length measurements with spatially calibrated images.
<li> Thanks to Peter Haub, fixed a 1.52u regression that caused the cursor
position to not be aligned with the drawing position when creating
a polygon ROI.
<li> Thanks to 'Professor_OAT', fixed a 1.52s regresson that caused the 
deleteRows() macro function to throw an exception when deleting
rows in a non-numeric table.
</ul>

<li> <u>1.52u 17 March 2020</u>
<ul>
<li> ROI enhancements, thanks to Michael Schmid: 
<ul>
<li> Line and point selections have integer coordinates at
pixel centers when displayed at high magnification. Area selections
have integer coordinates at the top-left corner of pixels.
<li> All  interactively created ROIs, except rectangles and ovals, are created
with subpixel resolution when the magnification is above 150%.
<li> Removed the "Sub-pixel resolution" option from the
<i>Edit&gt;Options&gt;Plots</i> dialog.
<li> The <i>Line to Area</i> command is faster and more accurate
<li> The <i>Straighten</i> command is more accurate.
<li> The <i>Image&gt;Info</i> command displays more
information about ROIs.
<li> Long-click to select ROIs from overlays now also works
with lines.
<li> The <i>Measure</i> command uses <i>Line to Area</i> instead of
<i>Straighten</i> to get statistics from segmented and freehand lines
with a width geater than one.
<li> Fixed a bug that could (rarely) cause an exception during
"wipe back" when drawing a polygon or polyline. In "wipe back"
mode, the mouse behaves like an eraser when
moved backwards with alt key down.
</ul>
<li> Thanks to Nicolas De Francesco, added the
<i>Edit&gt;Selection&gt;Fit Rectangle</i> command.
<li> Thanks to 'Dcolam' and Jan Eglinger, the
<i>Edit&gt;Selection&gt;Enlarge</i> command no
longer has a 255 pixel limit. 
<li> Thanks to Peter Bankhead, the default TIFF reader uses the HandleExtraFileTypes
 plugin when it is unable to open a file. As an example, .svs files dragged and dropped
 on the "ImageJ" window are now opened by the Bio-Formats plugin.
<li> Added the <i>Help&gt;Examples&gt;JavaScript&gt;Overlay Text</i> example.
<li> Thanks to Laurent Thomas, added  a 
"Install Keypad Shortcuts" command to the
ROI Menu tool. Add<br>
  call("ij.plugin.MacroInstaller.installFromJar", "/macros/RoiMenuTool.txt+");<br>
to the <i>Edit&gt;Options&gt;Startup</i> dialog
to have the shortcuts automatically installed on startup.
<li> Thanks to Laurent Thomas, the commands in the
ROI Menu tool and the "Group" setting in the ROI Manager's
Properties dialog are recordable.
<li> Added the
Math.abs(n), Math.acos(n), Math.asin(n), Math.atan(n), Math.atan2(n1,n2), Math.ceil(n),
Math.cos(n), Math.exp(n), Math.floor(n), Math.log(n), Math.log10(n), Math.min(n1,n2),
Math.max(n1,n2), Math.pow(n1,n2), Math.round(n), Math.sin(n), Math.sqr(n),
Math.sqrt(n) and Math.tan(n) macro functions.
<li> Added the RoiManager.setGroup(group) and
RoiManager.selectGroup(group) macro functions.
<li> Thanks to Ken Gilbert, added the getValue("image.size")
macro function.  
<li> Thanks to Laurent Thomas, added the setOption("WaitForCompletion",false)
macro function, which causes the next exec() call to return an empty string and
not wait for the command being executed to finish.
<li> Thanks to Nortbert Vischer, added the Array.sort(array1,array2,array3...)
macro function
(<a href="../../macros/examples/ArraySortDemo.txt">example</a>).   
<li> Thanks to Volker Backer, added the ImagePlus.resize()
method, which is recorded by the <i>Image&gt;Scale</i>
and <i>Image&gt;Adjust&gt;Size</i> commands.
<li> Thanks to Fred Damen, added the Plot.setWindowSize() method.
<li> Thanks to Lewis Muir, fixed a bug the caused the Pixel Inspection Tool's
red selection box to be included with the image when saving in
GIF, JPEG or PNG format.
<li> Thanks to 'cooketho', fixed a bug that caused the 
<i>Edit&gt;Copy to System</i> command to sometimes not work
as expected with composite images.
<li> Thanks to Fred Damen, fixed bugs that caused the
TextRoi.setJustification() and TextRoi.drawPixels() methods
to not work as expected.
<li> Thanks to Nicolas De Francesco, fixed a bug that caused
empty tables to not be opened correctly.
<li> Fixed a bug that caused the Color Picker to not work
correctly if the GUI scale was greater than one.
<li> Thanks to Michael Schmid, fixed a bug that could cause
a thread deadlock in plugins using the ImageListener interface.
<li> Thanks to Michael Schmid, fixed a bug that caused the
"List coordinates" option in the <i>Edit&gt;Selection&gt;Properties</i>
dialog to ignore the "Origin" setting in the
<i>Image&gt;Properties</i> dialog.
<li> Thanks to 'sebi06', fixed a 1.52p regression that caused the
particle analyzer to thow an exception in headless mode.
</ul>

<li> <u>1.52t 30 January 2020</u>
<ul>
<li> Thanks to Laurent Thomas, added a "Group" field to the
<i>Edit&gt;Selection&gt;Properties</i> dialog and an
"ROI Menu" tool to the toolbar's <i>&gt;&gt;</i> menu.
<li> Thanks to Norbert Vischer, added support for superscripts and
subscripts in plot axis labels
(<a href="http://wsr.imagej.net/macros/examples/PlotWithSubscriptsAndSuperscrips.txt">example</a>). 
<li> Thanks to Norbert Vischer, added a "Separate Image" option to the
"Location:" menu of the <i>Analyze&gt;Tools&gt;Calibration Bar</i> dialog.
<li> Selection handles are larger. 
<li> Added a "Bolder selections" ("Roi.setDefaultStrokeWidth(2);") code
choice to the <i>Edit&gt;Options&gt;Startup</i> dialog.
<li> Thanks to Mark Rivers, the <i>Help&gt;Examples&gt;JavaScript&gt;TeraByte VirtualStack</i>
example now generates test patterns and supports multiple image types.
<li> Thanks to Laurent Thomas, added the Roi.getDefaultGroup,
Roi.setDefaultGroup(group), Roi.getGroup, Roi.setGroup(group),
Roi.getDefaultStrokeWidth and Roi.setDefaultStrokeWidth()
macro functions, and the corresponding Roi class methods.
<li> Added the following macro language string functions, where
's' is a string variable:<br>
s.charAt(i), s.contains(s2), s.endsWith(s2), s.indexOf(s2), s.lastIndexOf(s2),
s.length, s.matches(s2), s.replace(s1,s2), s.startsWith(s2),
s.substring(i1,i2), s.substring(i), s.toLowerCase,
s.toUpperCase and s.trim.
<li> Thanks to Stephen Royle, fixed a bug on macOS that caused
the  command-h keyboard shortcut (<i>ImageJ&gt;Hide ImageJ</i>)
to not work.
<li> Thanks to Mark Rivers, fixed a bug that caused the cursor
location and pixel value to not be displayed in the status bar
for animating stacks.
<li> Thanks to Jeff Spector and Michael Schmid, fixed a bug that
caused the <i>Edit&gt;Selection&gt;Line to Area</i> command
to not work as expected.
<li> Thanks to Norbert Vischer, fixed a bug that caused a
misleading error message to be displayed when using the
saveAs(format,path) macro function to save in "jpg", "png" or "gif"
format and the file path was incorrect.
<li> Thanks to Michael Schmid, fixed a bug that caused macro
recording to not work correctly if "Non-blocking filter dialogs" was
enabled in the <i>Edit&gt;Options&gt;Misc</i> dialog.
<li> Thanks to Michael Kaul, fixed a bug that caused the
GenericDialog.addSlider() method to not use enough
digits to the right of the decimal point if the value
of the 'stepSize' argument was very small.
<li> Thanks to Michael Schmid, fixed several live profile
plot and LineWidthAdjuster bugs.
<li> Thanks to Norbert Vischer, fixed a bug that caused the
<i>Image&gt;Overay&gt;Flatten</i> command to throw
an exception when flattening hyperstacks.
<li> Thanks to Michael Schmid, fixed a bug that caused dialogs
with only buttons to put the focus on the first button, which is not the
"OK" button on MacOS and Linux.
<li> Thanks to John Fozard and 'mountain_man', fixed a bug
that caused angle measurements of lines a few pixels
in length to be incorrect.
<li> Thanks to 'SarenT', fixed a bug that caused the
ImagePlus.getShortTitle() method to truncate file names
containing spaces.
<li> Thanks to Norbert Vischer, fixed a bug that caused
a "Has Calibration Bar" error when attempting to adjust
brightness and contrast after clicking on "Cancel" in
the <i>Analyze&gt;Tools&gt;Calibration Bar</i> dialog.
<li> Thanks to Fernando Garcia-Polite, fixed a 1.52q regression
that caused the run("Point Tool...",options) macro function 
to no longer work.
<li> Thanks to Michael Schmid, fixed a 1.52q regression 
that caused duplicate recordinging of non-blocking dialogs. 
<li> Thanks to Dorai Iyer, fixed a 1.52s regression that caused characters
entered using the text tool to sometimes be repeated.
<li> Thanks to Rodrigo Goncalves and Curtis Rueden, fixed a
1.52q regression that caused the "Movie (FFMPEG)"
plugin to throw a NullPointerException.
</ul>

<li> <u>1.52s 10 December 2019</u>
<ul>
<li> Thanks to 'LPUoO', added the <i>Plugins&gt;Utilities&gt;Commands</i> 
command, which opens a list of commonly and recently used 
commands.
<li> By default, image windows now open just below the "ImageJ" window.
<li> Thanks to Norbert Vischer, adding an exclamation mark to 
showStatus() messages avoids status bar flicker
(<a href="http://wsr.imagej.net/macros/examples/NonVolatileShowStatus.txt">example</a>). 
<li> Thanks to Michael Schmid, the <i>Process&gt;Filters&gt;Convolve</i>
dialog displays feedback on the kernel as it is modified.
<li> Added the <i>Macros&gt;Set as Repeat Command</i>
command to the macro editor. After running this command,
the selected macro code will run each time you press 'r', the
shortcut for the <i>Process&gt;Repeat Command</i> command.
<li> Thanks to Jerome Mutterer, added a "Splash Screen" code
choice to the <i>Edit&gt;Options&gt;Startup</i> dialog.
<li> Changed the shortcut for <i>Process&gt;Repeat Command</i>
to 'r' and the shortcut for <i>File&gt;Revert</i> to shift-r.
<li> Added a "Reuse 'FFT of...' window" option to the
<i>Process&gt;FFT&gt;FFT Options</i> dialog.
<li> Thanks to Peter Haub, chroma subsampling is disabled when saving in
JPEG format if the Quality setting (<i>Edit&gt;Options&gt;Input/Output</i>)
is 90 or higher, resulting in higher quality images but larger file sizes.
<li> Thanks to Karen Collins, improved the FITS Writer.
<li> Added the <i>Help&gt;Examples&gt;JavaScript&gt;JPEG Quality Plot</i>
example.
<li> Removed the obsolete "Draw grid lines" option from the
<i>Edit&gt;Options&gt;Plot</i> dialog.
<li> Thanks to Michael Schmid, the ImagePlus.updateAndDraw()
method adds a scroll bar to the image window if the stack size
has changed to greater than one.
<li> Thanks to Stein Rorvik, added the File.getDefaultDir,
File.setDefaultDir(path), String.trim(string) and String.join(array)
macro functions.
<li> Thanks to Peter Haub, added the JpegWriter.disableChromaSubsampling()
method
(<a href="http://wsr.imagej.net/macros/js/JpegQualityTests.js">example script</a>).
<li> Added the ImageProcessor.setFontSize() and Plot.setFontSize() methods.
<li> Thanks to 'kefe' and Herbie, fixed a bug that caused the <i>Stack to Images</i>
command to use slice labels as image titles even when
they contained "/", "\" or ":" characters.
<li> Thanks to 'sudgy' and Jan Eglinger, fixed a bug the caused iteration
over the points contained in an ROI to throw an exception for rectangular ROIs.
<li> Thanks to Norbert Vischer, fixed a bug that caused the options dialogs
for the Rounded Rectangle, Multi-point and Arrow tools to generate
"Duplicate keyword" errors when the Recorder was running.
<li> Thanks to Peter Haub, fixed a bug that caused the Image Calculator
to not work as expected with RGB images when using the
"Difference" operator and the "32-bit (float) result" option was enabled.
<li> Fixed a bug that caused the "Font size" setting in the 
<i>Edit&gt;Options&gt;Plots</i> dialog to be ignored.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
run("Calibration Bar...",options) macro function to ignore calls to
setOption("AntialiasedText",boolean).
<li> Thanks go Sethur, worked around a Windows 10 and OpenJDK
bug that caused the "thumb" on scrollbars to be hard to see.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
<i>Analyze&gt;Set Scale</i> command to not be correctly
recorded.
<li> Thanks to Sethur, fixed a bug that caused the
<i>Image&gt;Stacks&gt;Tools&gt;Substack Maker</i>
command to not carry over the calibration of hyperstacks.
<li> Thanks to Sethur, fixed bugs that caused the
DICOM reader to not correctly open multi-frame DICOMs,
and 16-bit signed DICOMs, with RescaleSlope=1
and RescaleIntercept!=0.
<li> Thanks to Stein Rorvik, fixed a macro interpreter bug
that prevented array functions like newArray() and split() from
being used as arguments to user-defined functions.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
Window menu to not be updated when saving a table.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
<i>Image&gt;Transform&gt;Translate</i> command
to ignore overlays.
<li> Thanks to Stein Rorvik, fixed a bug that caused right
justified text in overlays to not be translated correctly.
<li> Thanks to Stein Rorvik, worked around a Java bug 
that caused the OpenDialog.setDefaultDirectory(path) method to
sometimes not work as expected on Windows when the path
used "/" separators.
<li> Thanks to Stein Rorvik, fixed a bug that caused macros
calling open("") to not be aborted when the user clicked
"Cancel" in the file open dialog and "Use JFileChooser to open/save"
was enabled in the <i>Edit&gt;Options&gt;Input/Output</i> dialog box.
<li> Thanks to Nicolas De Francesco, fixed a bug that caused
<i>Process&gt;FFT&gt;Custom Filter</i> to only process 
the current stack slice even though "Process entire stack" 
was checked in the dialog box.
</ul>

<li> <u>1.52r 26 October 2019</u>
<ul>
<li> Plot enhancements, thanks to Michael Schmid: 
<ul>
<li> The <i>More&gt;&gt;</i> menus have immediate preview. 
<li> New <i>More&gt;&gt;Use Template</i> menu (also with immediate preview), 
useful for creating plots with the same style.
<li> Clicking into a rectangular area next to an axis shows the
corresponding axis dialog.
<li>When adding a curve to a "Live" plot, it remains when the plot is 
updated. 
</ul>
<li> Thanks to Jan Eglinger, saving TIFF images and stacks to
network drives is up to 10 times faster.
<li> Thanks to Marcel Boeglin, the title of the selection list created by
<i>Image&gt;Overlay&gt;List Elements</i> includes the image
name. And, when you double click on a line, the image associated
with the list is activated, the corresponding selection is activated and
stacks are set to the selection position.
<li> Thanks to Michael Schmid, <i>Process&gt;Filters&gt;Gaussian Blur</i>
now uses a Thread Pool, reducing overhead and making it
faster for small images.
<li> Thanks to Stein Rorvik, you can now separately view and set
the X, Y and Z dimension units in the 
<i>Image&gt;Properties</i> dialog box.
<li> Thanks to Ryan Siu, the double click interval used to
complete a polygon selection is reduced from 500ms to 250ms and
a confirmation dialog is displayed when completing the selection
and there are more than 25 points.
<li> Thanks to Stein Rorvik, the slider in the <i>Image&gt;Transform&gt;Rotate</i>
dialog now shows the angle using two decimal places and the slider arrows
increment/decrement by 0.1 degrees. Use the keyboard arrow keys
as a shortcut to finely adjust the angle.
<li>  Thanks to 'felix.b', labels of multi-point tool markers get
larger as the markers get larger and there are two new marker
sizes ("XXL" and "XXXL").
<li> Thanks to Stein Rorvik, the <i>Image&gt;Adjust&gt;Coordinates</i>
command can now be used to set the Z unit.
<li> GenericDialogs display an error message if show() is called
instead of showDialog().
<li> Added the getDir("downloads") macro function and
the IJ.getDir("downloads") method.
<li> Thanks to Stein Rorvik, added the Roi.getPosition(channel,slice,frame),
Roi.setPosition(channel,slice,frame),
Stack.setXUnit(), Stack.setYUnit(),
Stack.setUnits(x,y,z,time,value), Stack.getOrthoViews(x,y,z),
Stack.getOrthoViewsIDs(xy,yz,xz), File.getDirectory(path)
and File.getNameWithoutExtension(path) macro functions.
<li> Thanks to Leroy Olivier, added the Stack.getPointPosition(index)
macro function.
<li> Added the IJ.openAsByteBuffer() method
(<a href="http://wsr.imagej.net/macros/js/DecodeRoiFile.js">example</a>).
<li> Thanks to Michael Schmid, fixed a bug that caused the
getInfo("window.title") macro function to not work as expected
after opening a large text file using open("/path/to/largeFile.txt").
<li> Thanks to Stein Rorvik, fixed a bug that caused 
min/max values of calibrated 16-bit images to be shown without
decimals in the "B&C" dialog.
<li> Thanks to Deborah Schmidt, fixed a bug that caused Fiji users to not
be able to update via HTTPS through a proxy.
<li> Worked around a macOS bug that caused the keyboard 
arrow keys to not function as shortcuts for the
increment/decrement arrows in GenericDialog sliders.
<li> Thanks to Marcel Boeglin, fixed a bug that could cause the
particle analyzer to throw an exception when creating an 
overlay and no particles were detected.
<li> Thanks to Noreen Walker, fixed a bug that caused the
image type to unexpectadly to change to COLOR_256 when
using the "glasbey" LUT.
<li> Thanks to 'mountain_man', fixed a bug
that caused images to not be displayed correctly
if a LUT was applied before the image was shown.
<li> Thanks to 'mountain_man', fixed a bug
that caused 8-bit PNG images with LUTs to
open as type COLOR_256.
<li> Thanks to Jan Brocher, fixed a bug that caused the
<i>Edit&gt;Selection&gt;Create Selection</i> command
to ignore the "Black background" setting with
non-thresholded binary images.
<li> Thanks to 'mountain_man', fixed a bug that caused
ImageJ to not be be able to open TIFF files saved
without a file path.
<li> Thanks to Birgit Moeller, fixed a bug that caused the
"Label" column to not be sorted when using the "Sort"
command in Results tables.
<li> Thanks to lguerard and mountain_man, fixed a
bug that caused an ROI's hyperstack position
to be lost when adding it to the RoiManager.
<li> Thanks to Philippe Carl and Michael Schmid, fixed a bug
that caused OvalRoi.getMask() to sometimes 
return a zero-width mask.
<li> Thanks to Francois Gannier and Michael Schmid, fixed a
1.52o regression that caused the "Log" window to unexpectedly
become the active window.
</ul>

<li> <u>1.52q 13 September 2019</u>
<ul>
<li> Thanks to Michael Schmid, added the "Non-blocking filter dialogs"
option to <i>Edit&gt;Options&gt;Misc</i>. The Convolve,
Mean, Median, Minimum, Maximum, Variance and Image&gt;Math
commands use NonBlockingGenericDialogs when
this option is enabled.
<li> "Save changes?" dialogs on Windows and Linux now
use "Don't Save", "Cancel" and "Save" buttons.
<li> Thanks to Norbret Vischer, added the
<i>Dialog.addMessage(string,fontSize,fontColor)</i> 
macro function
(<a href="http://wsr.imagej.net/macros/examples/DialogMessageDemo.txt">example</a>).
<li> Thanks to Noreen Walker, the <i>Image&gt;Stacks&gt;Statistics</i>
command and the StackStatistics class now calculate the median
of non-float images.
<li> Drag and drop opening of images, tables and LUTs is recorded.
<li> Thanks to Michael Schmid, added the Plot.showValuesWithLabels()
macro function and the Plot.getResultsTableWithLabels() method.
Both create tables that use legend labels and/or axis labels as 
column headings. The List, Save Data and Copy All Data
plot window commands also now use labels.
<li> Thanks to Jerome Mutterer, added the getValue("Length")
macro function.
<li> Thanks to Jerome Mutterer, added the IJ.pad(string,digits)
macro function and method.
<li> Thanks to Michael Schmid, the ImagePlus lock() and unlock()
methods now support multiple lock/unlock operations by the
same thread.
<li> Added the IJ.getValue(imp,measurement) method, where
'measurement' is "Area", "Mean", "StdDev", etc.
<li> Thanks to Stein Rorvik, fixed a bug that caused
<i>File&gt;Import&gt;Image Sequence</i> to not
correctly handle RGB48 images when "Use virtual stack"
was enabled.
<li> Thanks to François Gannier, fixed a bug that caused the
unit to not be set when "Function:" was set to "None" in the
<i>Analyze&gt;Calibrate</i> dialog.
<li> Thanks to 'Matthew', fixed bugs that cause the Table.deleteRows() 
macro function and IJ.deleteRows() method to not update particle
analyzer overlays.
<li> Thanks to Norbert Vischer, fixed bugs that caused tables with
missing columns or rows to not be opened correctly.
<li> Thanks to Sara Vecchio and Michael Schmid, fixed a bug that
caussed the curve fitter to throw an exception if all data points
contained NaNs.
<li> Thanks to Robert Haase, fixed a bug that caused the
<i>Process&gt;Find Maxima</i> to throw an exception in
Fiji headless mode.
<li> Thanks to Stephen Royle, fixed a bug that caused the
run("Fill") macro function to ignore setColor(pixelValue) calls.
<li> Thanks to 'mendel', fixed a bug that caused
enlarged ROIs to be shifted if the polygon defining the
original ROI had points outside the filled polygon.
<li> Thanks to Michael Schmid, fixed a bug that could cause
ImageJ to freezes when running macros that manipulate stacks.
<li> Thanks to Norbert Vischer, fixed a bug that caused
the numeric field in GenericDialog sliders to be too
narrow when the maximum value was greater than 9999.
<li> Thanks to Norbert Vischer, fixed a bug that caused
the getValue(x,y) macro function to not interpolate when
x or y were real numbers.
<li> Thanks to Norbert Vischer, fixed a bug that caused
the getPixel(x,y) macro function to not return raw pixel values
when x or y were real numbers.
<li> Thanks to 'mountain_man', fixed a bug that caused
line selections to not be correctly converted to ShapeRois.
<li> Thanks to Jeremy Adler, fixed a regression that caused the
the makeSelection(10, xpoints, ypoints) macro function to
throw an exception.
<li> Thanks to Dan McDonald, fixed a regression that caused the
Raw File Opener to throw an exception.
<li> Fixed a 1.52a regression that caused tables created by
the gel analyzer to not have row numbers.
<li> Thanks to Hyung-song Nam and Curtis Rueden, fixed a
1.52o regression that caused the Channels tool on macOS
to become unresponsive.
<li> Thanks to Florian Jug, fixed a 1.52o regression that
caused the "Auto" button in the "B&C" tool to not have
focus on macOS.
</ul>

<li> <u>1.52p 22 June 2019</u>
<ul>
<li> Thanks to Uwe Schmidt, improved the support for multiple screen setups:
  <ul>
  <li> Placement of first image window is more predictable.
  <li> Reliably determine the correct screen for a given location or window,
  for example to determine if a window can be enlarged.
  <li> If there is ambiguity about which screen to use, the one that contains
  the main ImageJ window will be chosen. For example
  <i>Plugins&gt;Utilities&gt;Capture Screen</i> and <i>Windows&gt;Tile</i>
  use the screen with the main ImageJ window.
  <li> Dialogs are shown on the screen containing the main ImageJ window.
  <li> Maximized image windows no longer revert to the main screen.
  <li> Improved behavior of "+" (<i>Image&gt;Zoom&gt;In</i>) command.
  <li> Code simplification, especially by removing special cases for Linux.
  </ul>
<li> ImageJ displays a warning dialog before deleting a multi-point selection.
<li> Thanks to 'alex', the FITS Reader no longer flips images vertically
so inspection of pixels will produce the expected values.
<li> Thanks to Jerome Mutterer, added the getValue(measurement)
macro function, where 'measurement' is "Mean", "Median", "Feret", etc.
(<a href="http://wsr.imagej.net/macros/Colorize_ROIs_by_Measurement.txt">example</a>).
<li> Added the getValue(x,y) macro function and
the ImageProcessor.getValue(x,y) method.
<li> Thanks to "Herbie", restored macro support for the
"lightGray", "darkGray" and "pink" named colors.
<li> Thanks to Somsubhro Chaudhuri, added the getValue("selection.angle")
macro function and the Rotator.getAngle() method.
<li> Added the getValue("selection.size") macro function.
<li> Added the setOption("CopyHeadings",boolean) macro function.
<li> Thanks to Stein Rorvik, added the Roi.setAntiAlias(boolean) macro function,
which can be used to control antialiasing when drawing selections
(<a href="http://wsr.imagej.net/macros/AntiAliasingDemo.txt">example</a>).
<li> Thanks to 'MLdish', added the ParticleAnalyzer.setSummaryTable() method
(<a href="http://wsr.imagej.net/macros/js/HeadlessSummary.js">JavaScript example</a>).
<li> Thanks to Wilhelm Burger, added the Menus.add(menuPath,class)
method.
<li> Thanks to Philippe Carl, added the RoiManager.getErrorMessage() method.
<li> Thanks to Laurent Thomas, updated the Javadoc of the MaximumFinder.getMaxima()
methods to make it clearer that the npoints variable of the returned Polygon is the
number of maxima found, not the length of the xpoints variable.
<li> Made the Toolbar.builtInTools array public.
<li> Thanks to Mikael Eriksson, fixed a bug that caused the
particle analyzer's "Summary" table to not be accessible in macros
run from the command line using the -batch option.
<li> Thanks to Andrew Clark, fixed a bug that caused
<i>Edit&gt;Undo</i> to delete all stack slices except the
current one after using the flood fill tool.
<li> Thanks to 'Nhthayer', fixed a bug that caused imageJ to
incorrectly read TIFF stacks created by the Python
tifffile package when the "imagej=True" option was used.
<li> Thanks to Marcel Boeglin, fixed a bug that caused
the <i>Image&gt;Adjust&gt;Size</i> command to throw
on exception with XYCT hyperstacks.
<li> Thanks to Francisco Romanos, fixed a bug that caused
the run("Scale...",options) macro function to ignore the
'interpolate' options keyword.
<li> Thanks to Glen MacDonald and Curtis Rueden, fixed a 
bug that sometimes caused macros in the "More Tools" (>>)
menu to be sorted randomly.
<li> Thanks to Philippe Carl, fixed a bug that caused
ImagePlus.getStatistic() and ImageProcessor.getStatistic() to
not treat one point selections the same way.
<li> Thanks to Andrew Sonnier, fixed a bug that caused the
particle analyzer to not be recorded if the "In situ" option was used.
<li> Thanks to Mikael Eriksson, fixed a bug that caused the
run(“Colors…”,options) macro function to throw an
exception when called from a -batch command line macro.
<li> Thanks to Stein Rorvik, fixed a bug that caused
the Overlay.drawLine() macro function to not work
correctly when used in conjuction with Overlay.setColor()
and/or Overlay.setPosition().
<li> Thanks to 'Niederle', worked around a bug that caused
the run("Gamma...", "value=x.xx") macro function to fail in
Fiji headless mode.
<li> Thanks to 'fieryice12', fixed a bug that caused the
Plot.showValues macro function to fail in batch mode.
<li> Thanks to NorbertVischer, fixed a bug that caused
the <i>Image&gt;Duplicate</i> command to throw
on exception if the ROI was outside the image.
</ul>

<li> <u>1.52o 23 April 2019</u>
<ul>
<li> Added the <i>Help&gt;Examples&gt;Macro&gt;Curve Fitting</i>
and <i>Help&gt;Examples&gt;JavaScript&gt;Curve Fitting</i> examples.
<li> Thanks to Tiago Ferreira, stack and hyperstack scrollbars 
now apply the <i>Edit&gt;Options&gt;Appearance</i> "GUI scale".
<li> Thanks to 'mountain_man', tables can be sorted alphabetically.
<li> Thanks to Neil Switz, the <i>Process&gt;FFT&gt;Inverse FFT</i>
command displays a warning message if the "FFT of ..." image
has been modified but no pixels have been set to 0 or 255.
<li> Thanks to Stein Rorvik, copies of IJ_Props.txt and/or IJ_Prefs.txt
in the ImageJ folder override the corresponding files in the default locations.
<li> Thanks to Stein Rorvik, the Table.update macro function is called
automatically when a macro finsihes and the Table.setSelection(),
Table.getSelectionStart and Table.getSelectionEnd functions no
longer require that a title be specified.
<li> Thanks to Philippe Carl, the isKeyDown() and setKeyDown() macro
functions now support the control key
(<a href="http://wsr.imagej.net/macros/KeysDownDemo.txt">example</a>).
<li> Thanks to Stein Rorvik, the setColor() and setLineWidth() macro functions
no longer abort the macro if no image is open.
<li> Thanks to Sian Culley, removed "Bridge" and "Lena" from the
<i>File&gt;Open Samples</i> menu. Macros and scripts that use
these images will continue to work.
<li> Thanks to Stein Rorvik, the run("Apply LUT") macro function no longer
shows an error message with images that have a display range of 0-255.
<li> Thanks to NorbertVischer, Philippe Carl and Stein Rorvik, added the
Array.deleteValue() and Array.deleteIndex() macro functions
(<a href="http://wsr.imagej.net/macros/ArrayDeleteDemo.txt">example</a>).
<li> Thanks to Stein Rorvik, added the Table.setLocationAndSize() 
macro function.
<li> Added the ImagePlus.crop(options) method, where 'options' can be
can be "stack", "slice" or a range (e.g., "20-30").
<li> Thanks to Stein Rorvik, fixed a bug the caused macros using a
function key shortcut to not work if the shift key was down.
<li> Thanks to Salim Kanoun, fixed a bug in the DICOM reader that caused
it to sometimes not correctly open PT DICOM stacks.
<li> Thanks to Stein Rorvik, fixed a rounding error with setMinAndMax()
on some density calibrated 8-bit images.
<li> Fixed non-macro recording of the <i>Image&gt;Duplicate</i> command.
<li> Thanks to Norbert Vischer, fixed a bug that caused the
doWand(x,y,tolerance,"Smooth") macro function to cause
the macro language's &var variable passing method to fail.
<li> Thanks to Jan Eglinger, fixed a bug that caused log histogram plots
to be malformed if the line width was set to greater than 1.
<li> Thanks to Stein Rorvik, fixed a bug that caused the Table.title
and getInfo("window.title") macro functions to sometimes
not work with custom tables.
<li> Thanks to Stein Rorvik, fixed bugs related to saving and
opening empty tables.
<li> Thanks to Norbert Vischer, fixed a bug that caused the 
Mac menu bar to disappear when activating the Channels, 
ColorPicker, ContrastAdjuster and ThresholdAdjuster dialogs.
<li> Thanks to Norbert Vischer, fixed a bug that caused the
"Save changes?" dialog to not be the front-most window 
when quitting ImageJ.
<li> Thanks to Tihamer, fixed a bug that caused the
CurveFitter.getResultString() method to fail if
there was a fitting error. 
<li> Thanks to Ellen Arena, fixed 1.52m regression that caused
the <i>Edit&gt;Selection&gt;Create Selection</i> command
to not work as expected with non-thresholded images.
<li>Thanks to Laurent Thomas, fixed a 1.52n regression that caused the
MaximumFinder.getMaxima() method to always return 0 points.
<li> Thanks to Gabriel Landini, fixed a regression that could cause
the ImagePlus.setSlice() method to throw an exception.
</ul>

<li> <u>1.52n 22 March 2019</u>
<ul>
<li> Thanks to Ellen Arena, fixed a 1.52m regression that caused
the <i>Edit&gt;Selection&gt;Create Mask</i> command to not
preserve spatial calibration.
</ul>

<li> <u>1.52m 20 March 2019</u>
<ul>
<li> ROI improvements thanks to Michael Schmid, including more accurate
Roi.contains, better ShapeRoi filling, improved ShapeRoi.clone(), 
improved Roi Manager Split, better ShapeRoi length calculation, 
more accurate perimeter for ovals and rounded rectangles, 
more accurate MinFeret, removed point selection 32k slice limit,
ability to press ESC to abort creation of polygonROI,
and addition of Roi.getFeretPoints() macro function
(<a href="http://wsr.imagej.net/macros/DrawFeret.txt">example</a>).
<li> Thanks to Tiago Ferreira, the "GUI scale (0.5-3.0)" 
setting in the <i>Edit&gt;Options&gt;Appearance</i> dialog
is now applied to almost all remaining dialogs and widgets,
including the Histogram and Plot Windows and the Threshold widget. 
<li> Thanks to Norbert Vischer, added the <i>File&gt;Show Folder</i>
submenu.
<li> Thanks to Norbert Vischer and Michael Schmid, changed
"Noise Tolerance" to "Prominence" and added a "Strict" option
to the <i>Process&gt;Find Maxima</i> dialog.
<li> Thanks to Hidenao Yamada, the <i>File&gt;Import&gt;Raw</i>
command now uses long instead of int for the gap between images.
<li> Thanks to Stein Rorvik, <i>Image&gt;Stacks&gt;Tools&gt;Set Label</i>
and <i>Image&gt;Stacks&gt;Tools&gt;Remove Slice Labels</i> work
with single images.
<li> On macOS, the <i>Help&gt;Update ImageJ</i> command
displays a message explaining how to work around Path
Randomization if the ImageJ home directory is read-only and
the file path starts with "/private/var/folders/".
<li> Thanks to Christophe Leterrier, the <i>File&gt;Import&gt;Image Sequence</i>
command now always sorts the files names on macOS.
<li>The <i>File&gt;Save As&gt;Image Sequence</i> command saves
single line slice labels when saving in TIFF format.
<li> Thanks to Norbert Vischer, the <i>File&gt;Revert</i> command
now works with virtual stacks.
<li> Thanks to Alicia Daeden, the makeLine() and makePolygon()
macro functions no longer have a 200 point limit.
<li> Thanks to Steve Fallows, <i>File&gt;Import&gt;Raw</i> only
gets .raw file parameters from the filename when it uses 'x' delimiters.
<li> Thanks to Gilles Carpentier, added the is("line") and
is("area") macro functions.
<li> Thanks to Albert Cardona, added the ImagePlus.updateVirtualSlice()
method.
<li> Thanks to Michael Kaul, added the Plot.update() method.
<li> Thanks to 'cyrilturies' and Jan Eglinger, fixed a bug that caused
Results table labels to not be displayed for line measurements if no
measurement options were enabled in <i>Analyze>Set Measurements</i>.
<li> Thanks to Stein Rorvik, fixed rounding errors in the
<i>Image&gt;Scale</i> command.
<li> Thanks to Norbert Vischer, fixed a bug that caused 
the toolbar to be corrupted when opening an overlay
containing multi-point selections.
<li> Thanks to Norbert Vischer, fixed bugs that caused 
numerous "//setTool()" statements to be recorded when opening
ROI sets or overlays that contain multi-point selections.
<li> Fixed a bug that caused multi-point selections to lose
their 'pointBeforeDeleting' property when saved and re-opened.
<li> Thanks to Michael Schmid, fixed a bug that caused
<i>Process&gt;Filters&gt;Gaussian Blur</i> to not be
multithread-safe.
<li> Thanks to Robert Lockwood, fixed a bug that caused the
<i>File&gt;Save</i> command to not be correctly recorded.
<li> Thanks to Albert Cardona, fixed bugs that caused
<i>Edit&gt;Selection&gt;Restore Selection</i>, and setting an
ROI from the ROI Manager, to not emit an Roi MODIFIED event.
<li> Thanks to Dr-Frog and Jan Eglinger, fixed a bug that caused
the ImageProcessor.fillOutside(Roi) method to modify the Roi 
passed as the argument.
<li> Thanks to Teresa Haider, fixed a bug that sometimes
caused <i>Image&gt;Transform&gt;Bin</i>
to not correctly display the output image.
<li> Thanks to Stein Rorvik, fixed a 1.52d regression that caused
<i>File&gt;Import&gt;Image Sequence</i> to use the image label
(if present) as the slice label instead of the filename.
<li> Thanks to Gilles Carpentier, fixed a 1.52k regression that
caused the particle analyzer to unexpectedly create composite ROIs.
<li> Thanks to Jan Eglinger, fixed a 1.52i regression that caused 
macro string expressions like <i>"s"+a[i]*n</i> to generate an error.
</ul>

<li> <u>1.52k 29 January 2019</u>
<ul>
<li> Thanks to Albert Cardona and Gabriel Landini, added the "GUI scale (0.5-3.0)" 
option to the <i>Edit&gt;Options&gt;Appearance</i> dialog, which enables
scaling of text in GenericDialogs and in the Command Finder. It
also doubles the size of the tool icons if the scale is 1.5 or larger
and triples the size if the scale is 2.5 or larger.
<li> Thanks to Norbert Vischer, added clickable spaces between the four
arrow pairs in plot windows for quickly setting a single plot limit.
<li> Thanks to Stein Rorvik, ImageJ now displays a progress bar when
duplicating large (>200 megapixel) stacks.
<li> Michael Schmid contributed an improved version of the ThresholdToSelection
class (<i>Edit&gt;Selection&gt;Create Selection</i>) that always converts single
 pixel wide lines to traced selections and is up to five times faster.
 <li> Thanks to Tatsuaki Kobayashi, ImageJ can now open 32-bit float DICOM images.
 <li> Michael Schmid contributed the FloatArray class, an extendable
 float array.
<li> Thanks to Norbert Vischer, added the Table.setSelection(start,end,title),
Table.getSelectionStart(title) and Table.getSelectionEnd(title) macro functions
(<a href="http://wsr.imagej.net/macros/TableSelectionDemo.txt">example</a>).
<li> Added the setOption("ScaleConversions",boolean) macro function.
<li> Thanks to Robert Haase, fixed a bug that caused the
<i>Edit&gt;Selection&gt;Create Selection</i> command to ignore the
"Black background" setting when processing non-thresholded binary images.
<li> Thanks to Johannes Wibisana, fixed a bug in the Particle Analyzer that
caused ROIs added to overlays and the ROI Manager to not exclude
interior holes.
<li> Thanks to Herbie, fixed a bug that caused the
<i>Process&gt;Binary&gt;Make Binary</i> command
to incorrectly set the threshold of 8-bit binary images.
<li> Thanks to Nicolas De Francesco, fixed a bug that caused
the LUT to not be saved in the TIFF header when saving
a single-channel image with a custom grayscale LUT.
<li> Thanks to Mark Mandelkern, fixed a bug that caused multi-image
DICOM files with RescaleSlope!=1.0 to open incorrectly.
<li> Thanks to Stein Rorvik, fixed a bug that caused the contrast
range to change when converting an 8-bit or 16-bit image to 32-bit.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
Table.getColumn("Label") macro function to throw an exception.
<li> Thanks to Philippe Carl, fixed a bug that caused ImageJ to
freeze when opening the Interactive Interpreter on Windows using
the ctrl+j keyboard shortcut.
<li> Thanks to Jerome Mutterer, fixed a bug that caused ImageJ
to fail to open one column tables.
<li> Thanks to 'Bio7', worked around a bug that caused 
toolbar popup menus to not work with OpenJDK 11 and 12 on Windows. 
<li> Thanks to Ved Sharma, fixed a bug that caused the Histogram
command to not behave as expected when "Limit to Threshold" was
enabled in <i>Analyze&gt;Set Measurements</i> and there
was an invisble threshold.
<li> Thanks to Norbert Vischer, fixed bugs in the toScaled(length)
and toUnscaled(length) macro functions.
<li> Thanks to J Xiong, fixed a 1.52j regression that caused the
<i>Image&gt;Overlay&gt;From ROI Manager</i> command
to throw an exception.
<li> Thanks to Philippe Carl, fixed 1.52j9 regression that made it
impossible to enter closing brackets into editor windows
using French keyboards.
<li> Thanks to Stein Rorvik, fixed 1.52j regression that
sometimes caused macro errors to be ignored
(<a href="http://wsr.imagej.net/macros/MacroErrorsIgnored.txt">examples</a>).
<li> Thanks to 'yorgodillo', 'mountain_man' and Jan Eglinger, fixed a 
1.52e regression that caused float to 8-bit conversions to be
done incorrectly.
</ul>

<li> <u>1.52j 29 December 2018</u>
<ul>
<li> Added the <i>Plugins&gt;Macros&gt;Interactive Interpreter</i> command 
(shortcut: "j"), which enables interactive editing and running
of macro and JavaScript code in an editor window
(<a href="http://wsr.imagej.net/docs/InteractiveDemo.txt">example</a>).
Type "js" in to switch the language to JavaScript.
<li> Thanks to Ved Sharma, point selections with more than 65,535 points
can now be saved and reopened
(<a href="http://wsr.imagej.net/macros/js/ManyPoints.js">example</a>).
<li> Thanks to Philippe Carl, the status bar is updated when adjusting
elliptical and rotated rectangle selections.
<li> Thanks to Ilan Tal, added the "Ignore Rescale Slopet"
checkbox to the <i>Edit&gt;Options&gt;DICOM</i> dialog box.
<li> Thanks to Michael Schmid, <i>Image&gt;Edit&gt;Resize</i>
can now convert a single image to a stack.
<li> Thanks to MichaelSchmid, improved the calculation of Feret
parameters for composite selections. FeretAngle is now reported
(within 0.5 deg), works with pixel aspect ratios different from one and is
more accuate due to use of 0.5 deg increments.
<li> Thanks to MichaelSchmid, the output of ROI Manager 'AND', 'OR'
and 'XOR' operations are, if possible, converted from composite ROIs
into simpler polygon ROIs.
<li> Thanks to Jerome Mutterer, errors in macro run() statements
 are now reported using a "Macro Error" dialog that displays
 the line number.
<li> Added the ImagePlus.plotHistogram() method. For examples,
run <i>Help&gt;Examples&gt;JavaScript&gt;Histogram Plots</i>.
 <li> Added the JavaScript-friendly ImageStatistics.histogram() method
(<a href="http://wsr.imagej.net/macros/js/PlotHistogram.js">example</a>).
 <li> Added the Overlay.setLabelFontSize(size,options),
 Overlay.setLabelColor(), Overlay.setStrokeColor()
 and Overlay.setStrokeWidth() macro functions,
and corresponding Overlay class methods
(<a href="http://wsr.imagej.net/macros/StackParticleAnalyzerOverlay.txt">example</a>).
<li> Thanks to Jerome Mutterer, added the setIgnoreErrors() and
getErrorMessage() methods to the Interpreter class
(<a href="http://wsr.imagej.net/plugins/Test_IgnoreErrors.java">example</a>).
<li> Thanks to Michael Schmid, fixed a bug that caused 
<i>Image&gt;Edit&gt;Resize</i> to not preserve stack lookup tables.
<li> Thanks to Stein Rorvik, fixed <i>Orthogonal Views</i> bugs that caused
freezing, dragging in XZ and YZ views to not work, missing density calibration
and incorrect behavior when "Rotate YZ" and "Flip XZ" where enabled in 
<i>Edit&gt;Options&gt;DICOM</i>.
<li> Thanks to Stein Rorvik, fixed a bug that caused particle analyzer overlays to
not be specific to the current slice when processing one slice.
<li> Fixed a bug that caused the color of overlay labels to be set to black after 
the image was saved and reopened.
<li> Fixed a bug that caused the <i>Image&gt;Overlay&gt;To ROI Manager</i>
command to not preserve overlay properties such a label color and scalability.
<li> Thanks to Wilhelm Burger, fixed a bug that caused the Roi.setLocation(x,y)
method to not work correctly with ShapeRois if x or y were not integers.
<li> Thanks to Philippe Carl, fixed a bug that caused the status bar to not be
updated, or to not be updated correctly, when moving or changing the length
of straight line and arrow selections using the arrow keys. 
</ul>

<li> <u>1.52i 26 November 2018</u>
<ul>
<li> Thanks to Ved Sharma and Michael Kaul, added the
<i>Image&gt;Stacks&gt;Measure Stack</i> command
(<a href="http://wsr.imagej.net/macros/MeasureStack.txt">macro source</a>),
useful for plotting stacks using the contextual (right-click) <i>Plot</i> command
in Results tables.
<li> Thanks to Jerome Mutterer, added the
<i>Image&gt;Stacks&gt;Tools&gt;Magic Montage Tools</i> command
(<a href="http://wsr.imagej.net/macros/toolsets/Magic%20Montage.txt">macro source</a>).
 <li> Tables can be sorted using the Sort command in the contextual (right-click)
menu or in the <i>Results</i> menu
(<a href="http://wsr.imagej.net/macros/LabelParticlesBySize.txt">example</a>).
<li> Thanks to Matias Andina, the <i>Image&gt;Transform&gt;Rotate</i> command
can now be used interactiely.
<li> Thanks to Michael Schmid, added an  "F" (Fit All) icon next to the "R" (Reset Range)
icon in the bottom-left corner of plot windows.
<li> Thanks to Robert Haase and Emanuele Martini, added 
a "Don't reset range" checkbox to the "Threshold" dialog
(<a href="http://wsr.imagej.net/macros/ThresholdNoResetDemo.txt">example</a>).
<li> Added an error bars example to the
<i>Help&gt;Examples&gt;Plots&gt;Plot Styles</i> macro.
<li> Alphabetized the <i>Image&gt;Stacks&gt;Tools</i> menu.
<li> Moved the <i>Image&gt;Stacks&gt;Plot XY Profile</i> command
to <i>Image&gt;Stacks&gt;Tools&gt;Plot XY Profile</i>.
<li> Thanks to 'Barbara' and Michael Schmid, the <i>Translate</i> command in
the ROI Manager remembers the x and y offset values.
<li> Thanks to Alex Mironov, added an optional properties string
argument to the makePoint() macro function
(<a href="http://wsr.imagej.net/macros/PointsToOverlayDemo.txt">macro example</a>,
<a href="http://wsr.imagej.net/macros/PointsToOverlayDemo.js">JavaScript example</a>).
<li> Thanks to Alex Mironov, the setLineWidth() macro function
automatically calls Overlay.add() when the line width changes
(<a href="http://wsr.imagej.net/macros/AddLinesToOverlay.txt">example</a>).
<li> Added the Plot.replace() macro function and method. For examples,
run <i>Help&gt;Examples&gt;Plots&gt;Random Data</i>
or <i>Help&gt;Examples&gt;JavaScript&gt;Plot Random Data</i>.
<li> Thanks to Michael Schmid, added an "Add Fit" commamnd to
the <i>Data&gt;&gt;</i> menu of Plot windows.
<li> Thanks to Laurent Thomas, ShortProcessor.rotate() and FloatProcessor.rotate() 
now fill using the value set by setBackgroundValue().
<li> Thanks to Kai Barthel, the <i>Analyze&gt;Calibrate</i> command
resets the display range of contrast-reduced images.
<li> Thanks to Norbert Vischer, the curve fitter now works with
datasets containing NaNs.
<li> Thanks to Michael Schmid, added the Plot.objectCount macro function.
<li> Thanks to Matias Andina, added the setOption("SupportMacroUndo",boolean) macro function
(<a href="http://wsr.imagej.net/macros/RotateComposite.txt">example</a>).
<li> Thanks to Michael Schmid, added  a constructor for creating a plot
from arrays to the PlotContentsDialog class
(<a href="http://wsr.imagej.net/plugins/Test_ContentsDialog.java">example</a>).
<li> Added the PointRoi.getLastCounter() method.
<li> Added the getSizeInBytes() methods to the ImagePlus class.
<li> Thanks to Philippe Carl and Michael Schmid, fixed a bug that caused
the macro interpreter to incorrectly evaluate string expressions containing
numeric arrays indexed using the ++ operator.
<li> Thanks to Stein Rorvik, fixed a bug that caused the changeValues() macro
funtion to reset the display range of 16-bit and 32-bit images.
<li> Thanks to Alex Mironov, fixed a bug that caused setLineWidth(1)
in a macro to incorrectly set the line width to the width set in the
<i>Edit&gt;Options&gt;Line Width</i> dialog.
<li> Thanks to Michael Schmid, fixed a bug that caused the <i>Undo</i> command to
not work after rotating an image with "Enlarge image" enabled.
<li> Thanks to Matias Andina, fixed a bug that caused the <i>Undo</i> command to
not work after cropping or rotating a composite color image.
<li> Thanks to Michael Schmid, fixed a bug that caused nudging the end of a line
selection with alt-arrow keys to not update a live profile plot.
<li> Thanks to Mark Senko and Michael Schmid, fixed a bug that caused profile plots of line selections
wider than 1 to differ from profile plots of rectangles of the same size.
<li> Fixed a bug that caused DICOM images to be displayed incorrectly if "Open as 32-bit float"
was enabled in <i>Edit&gt;Options&gt;DICOM</i>.
<li> Thanks to Kenneth Sloan, fixed a bug that caused the Paintbrush Tool
(in "Paint on overlay" mode) to delete pre-existing overlays.
<li> Thanks to 'mountain_man', fixed a bug that caused the Rescale Slope
tag (0028,1053) to be ignored when opening DICOM images and
"Open as 32-bit float" was not enabled in <i>Edit&gt;Options&gt;DICOM</i>.
<li> Thanks to Fred Damen, fixed a file path recording bug that 
caused a NullPointerException.
<li> Thanks to Michael Schmid, fixed a bug that caused buttons in
some dialogs (e.g., "B&C" and "Threshold") to not be displayed correctly
on macOS when using the Metal look and feel. Opening an Action Bar switches
to Metal or use <i>Edit&gt;Options&gt;Look and Feel</i> in Fiji.
<li> Thanks to Michael Schmid, fixed a bug that caused plot stacks to not be spatially calibrated.
<li> Thanks to Nicolas Stifani, fixed a 1.52h regression on Windows that caused
 canceled dialog boxes in macros started using the
<i>Plugins&gt;Macros&gt;Run</i> command to throw an exception.
<li> Thanks to Jerome Mutterer, fixed a v1.52 regression that caused
the getMetadata() macro function (without the "info" or "label" argument)
to not work as expected.
</ul>

<li> <u>1.52h 16 October 2018</u>
<ul>
<li> Plot enhancements, thanks to Michael Schmid:
 <ul>
 <li> "Save" in plot windows has moved into a new <i>Data&gt;&gt;</i> menu, which includes two additional items:
 (1) <i>Add from Plot</i> (takes a PlotObject, e.g. data set, text, etc., from a different plot) and
 (2) <i>Add from Table</i> (adds data from a "Results" table).
 <li> Values in tables can be be plotted directly using the contextual menu or the
<i>Results&gt;Plot</i> command in "Results" tables.
 <li> Added the <i>Separated Bar</i> type, a bar graph with some space between the columns.
 For an example, run <i>Help&gt;Examples&gt;JavaScript&gt;Plot Styles</i>.
 <li> Histogram-like "Bar" plots also work with non-equidistant points along x.
 <li> <i>Connected Circles</i> fill the circles with the secondary color (= line color), if that color is given and not null.
 <li> Improved the code for filling bars and "filled" curves.
 <li> For "Bar" and "Separated Bar", the base line of the plot is y = 0 if the values differ by more than a factor of 2.
</ul>
<li> Added the <i>Help&gt;Examples&gt;Plots&gt;Plot Styles</i> and
<i>...JavaScript&gt;Plot Styles</i> examples.
<li> The <i>Edit&gt;Selection&gt;Create Mask</i> command works
with overlays created by the Brush and Pencil tools.
<li> Added a "Help" button to the Brush and Pencil tool dialog boxes.
<li> Thanks to Gabriel Landini and Jerome Mutterer, the text tool now
creates an "Enter text..." selection when you click (without dragging)
on an image and there is no existing selection.
<li> Thanks to Gabriel Landini, the "Show on all slices" option (was "Show all")
now appears in both the point and multi-point tool dialogs.
<li> Thanks to Stein Rorvik, the <i>Analyze&gt;Tools&gt;Synchronize Windows</i>
tool now supports use of the "+" and "-" keys for synchronized zooming
when the "Image scaling" option is enabled.
<li> Thanks to Lorenzo Cangiano, added a "Points" column to the
<i>Image&gt;Overlay&gt;List Elements</i> table.
<li> Added the Plot.setStyle() macro function. For an example,
run <i>Help&gt;Examples&gt;Plots&gt;Plot Styles</i>. 
<li> Added the IJ.exit() method, which aborts JavaScripts.
<li> Thanks to Bio7, fixed a bug that caused images to turn black when
assigned an ImageRoi created by the Brush or Pencil tools.
<li> Thanks to Stein Rorvik, fixed bugs that caused
<i>File&gt;Open Next</i> to sometimes fail when
opening images of dissimilar types.
<li> Thanks to Michael Schmid, fixed several bugs in
the <i>Image&gt;Adjust&gt;Threshold</i> tool, mostly related
to 32-bit images.
<li> Thanks to Michael Cammer and Michael Schmid, fixed a bug that
caused the "Propagate to the other n channels of this image" option of the
"Set" command in the "B&C" tool to not work as expected.
<li> Thanks to Stein Rorvik and Michael Schmid, fixed a bug that caused
an image pasted into a zoomed image to be incorrectly positioned
if the pasted image was equal or larger in size than the target image.
<li> Thanks to Stein Rorvik, fixed bugs that caused scale bars to be
incorrectly positioned on large images and macros to alter default
scale bar dialog settings.
<li> Fixed a bug that caused keyboard shortcuts for zooming in and
out, as well as other shortcuts, to not work when a text selection was active.
<li> Thanks to Stein Rorvik, fixed a bug that caused right-justified text
 added to an overlay by the Overlay.drawString() macro function to
not be displayed correctly.
<li> Thanks to "hwada", fixed bugs that caused the ImagePlus.setImage(ImagePlus)
method to sometimes not work as expected.
<li> Thanks to Nathalie Houssin, fixed a bug that caused
the <i>Make Substack</i> command to throw an exception when used
with hyperstacks opened by the OlympusViewer plugin.
<li> Fixed bugs in the ImagePlus.setStack() method.
<li> Thanks to Michael Schmid, fixed a bug that caused the "Show All" button
in the ROI Manager to not work as expected with point selections.
<li> Thanks to Lorenzo Cangiano, fixed a bug that caused programmatically
 generated overlays of PointRois on stacks to be not shown when saved
 and reopened.
 <li> Thanks to Robert Haase, fixed a bug that could cause
 the PolygonRoi.getTracedPerimeter() method to throw a
 NullPointerException.
 <li> Thanks to Hyung-song Nam and Curtis Rueden, fixed a bug that caused
 keyboard shortcuts to not work with the "Channels" tool.
 <li> Thanks to Gilles Carpentier, fixed a 1.52f regression that caused
 the <i>Edit&gt;Selection&gt;Create Mask</i> command to not
 work as expected if the image had both an roi and an overlay.
<li> Thanks to Norbert Vischer, fixed a 1.52g regression that caused
multi-channel images to lose color table and display range
information after being cropped and saved.
<li> Thanks to Stephen Royle, fixed a 1.52h regression that caused the
<i>Image&gt;Transform&gt;Rotate 90 Degrees Right (or Left)</i>
command to not work as expected with composite images.
</ul>

<li> <u>1.52g 16 September 2018</u>
<ul>
<li> A text selection in an overlay can be deleted by alt-clicking on
it and pressing backspace+delete (on Windows) or command+delete (on Macs).
<li> Fixed a bug that caused polygon and polyline selections to lose
properties like color, line width and name when a point is added by
shift-clicking on an existing point.
<li> Thanks to Dave Mason, fixed a bug that caused the
<i>File&gt;Import&gt;URL</i> command to not correctly
open Hyperstacks.
<li> Thanks to Volko Straub, fixed a 1.52f regression that caused
getDirectory("") on Windows to return a string ending in "/" instead 
of the expected "\".
</ul>

<li> <u>1.52f 7 September 2018</u>
<ul>
<li> Thanks to Norbert Vischer, added the Plot.addHistogram()
macro function, which plots a histogram from an array
(<a href="http://wsr.imagej.net/macros/Plot_Histogram.txt">example</a>).
<li> Thanks to Norbert Vischer, any currently running macro is aborted
when running an installed macro from the <i>Plugins&gt;Macros</i>
menu or the editor's <i>Macros</i> menu.
<li> Thanks to Michael Schmid, added the "Error Function" [y=a+b*erf((x-c)/d)]
curve fit option and the ij.util.IJ.Math.erf(x) method
(<a href="http://wsr.imagej.net/macros/ErrorFunctionDemo.txt">example</a>).
<li> The <i>Edit&gt;Selection&gt;Create Mask</i> command works
with line selections and overlays.
<li> The "Black background" setting defaults to 'true'.
<li> Thanks to Anna Povolna, the "Open all files in folder" and "Use virtual stack"
options in the <i>File&gt;Import&gt;raw</i> dialog can be used at
the same time.
<li> Thanks to 'Sethur', ImageJ no longer sorts imported DICOM
stacks by series number (tag 0020,0011) if "Sort images numerically" 
is not checked in the <i>File&gt;Import&gt;ImageSequence</i>
dialog. Also added a recordable 'noMetaSort' option to the options
string of the FolderOpener.open(dir,options) method.
<li> Thanks to 'Alan', added the createThresholdMask()
and createRoiMask() methods to the ImagePlus class. These methods
are recorded when using the <i>Edit&gt;Selection&gt;Create Mask</i>
command
(<a href="http://wsr.imagej.net/macros/CreateMaskDemo2.js">JavaScript example</a>).
<li> Added the recordable Raw.open(), Raw.openAll() and Raw.openAllVirtual() methods
(<a href="http://wsr.imagej.net/macros/OpenAllRawVirtual.js">JavaScript example</a>).
<li> Thanks to Stein Rorvik, added the DicomTools.getTagName(tag) method.
<li> Thanks to Christian Tischer, fixed bugs in the RoiManager.add(ImagePlus,Roi,int)
method than caused it to not behave as expected if the ROI name was not null.
<li> Thanks to Norbert Vischer, fixed bugs that caused the
<i>Edit&gt;Cut</i> and <i>Analyze&gt;Set Scale</i> commands
to not set the 'changes' flag.
<li> Thanks to Stein Rorvik, fixed a bug that caused the Overlay.drawString
macro function to ignore the justification set by the setJustification() function.
<li> Thanks to Stein Rorvik, fixed a bug that caused output of the
Overlay.drawString() function to be lost when text is added using
Overlay.addSelection().
<li> Thanks to Lorenzo Cangiono, fixed a bug that caused selections
pasted into images to not be saved.
<li> Thanks to Mahmoudi Sidi Ahmed, fixed a bug that caused the
<i>Analyze&gt;Calibrate</i> command to not work with signed 16-bit images.
<li> Thanks to Menelaos Symeonides, fixed an ROI Manager bug that
caused the stack position to be ignored when measuring
renamed ROIs.
<li> Thanks to Ron DeSpain, fixed a bug that caused attempts to add to (by holding
shift key down) and subract from (by holding alt key down) elliptical
selections to fail.
<li> Thanks to Ron DeSpain, fixed a bug that caused the
<i>Window&gt;Tile</i> command to overlap the "ImageJ" window
with image titles.
<li> Thanks to Pete Bankhead, fixed a bug the caused the
<i>Process&gt;Batch&gt;Convert</i> command to not work
correctly on Macs.
<li> Thanks to 'Hamish', fixed a bug that caused the roiManager("delete") macro
function to throw an exception when used in a loop.
<li> Thanks to Stein Rorvik, fixed a bug that caused one
column results tables to not be displayed correctly.
<li> Thanks to Stein Rorvik, fixed a bug that caused
<i>File&gt;Import&gt;Raw</i> to silently fail when importing a
stack and the file size was smaller than the size of a single image.
<li> Thanks to Stein Rorvik, fixed a bug that caused
the Overlay.drawString() macro function to not correctly
display right-justified text.
<li> Thanks to Stein Rorvik, fixed bugs that caused the
run("Raw...",options) and run("Image Sequence...",options)
macro functions to fail silently if the file or folder did not exist.
<li> Thanks to Stein Rorvik, fixed a bug that caused
the stack title to be incorrect after importing an image sequence
on Windows using a file path with forward slashes.
<li> Thanks to Stein Rorvik, fixed a bug that caused
<i>File&gt;Open Next</i> to not correctly open a non-composite 
image after having opened a composite image.
<li> Thanks to Ved Sharma, fixed an ROI Manager bug that
caused a "Rename ROI" dialog do be unexpectadly displayed 
when running macro using setKeyDown("alt") and makeOval()
 to create a composite selection.
<li> Thanks to Ved Sharma, fixed an ROI Manager bug that caused
 an exception when saving an ROI set containing a point selection
 followed by a composite selection.
 <li> Thanks to Salim Kanoun, fixed a bug that caused
 RoiManager.addRoi(roi) calls to be ignored if the ROI was
 a duplicate.
 <li> Thanks to 'TMC', fixed a bug that caused the 
ROI Manager's "Interpolate ROIs" command to
throw an exception.
<li> Thanks to 'Agnieszka', fixed a bug that caused the ImagePlus.getFileInfo() 
method to throw a NullPointerException.
<li> Thanks to Stein Rorvik, fixed a bug that caused the
<i>Macros&gt;Evaluate</i> commands in the text editor
to not update the <i>Window</i> menu.
<li> Thanks to Norbert Vischer, fixed a bug that caused the macro editor
to not always abort any existing macro before running another one.
<li> Thanks to Manel Bosch, fixed a 1.52e regression that caused 
image conversions to RGB to not preserve the color coding.
</ul>

<li> <u>1.52e 11 July 2018</u>
<ul>
<li> The "Threshold" tool no longer resets the display range of 16-bit and 32-bit images.
<li> Restored the "Set" button (removed in 1.51r) to the "Threshold" dialog,
<li> Thanks to Kai Schleicher, the options string of the FolderOpener.open(dir,options)
method can now include a file name filter
(<a href="http://wsr.imagej.net/macros/OpenFolderWithFilter.js">example</a>).
<li> Added a no-argument constructor to the PointRoi class
(example at <i>Help&gt;Examples&gt;JavaScript&gt;Points</i>).
<li> Added the Roi.size() method, equivalent to Roi.getPolygon().npoints.
<li> Added the FFT.forward(), FFT.multiply(), FFT.inverse() and FFT.filter() methods
(<a href="http://wsr.imagej.net/macros/FFT_Demo.js">JavaScript example</a>).
<li> The open("/path/to/file.avi") macro function and the IJ.openImage("/path/to/file.avi")
method now open AVI files by default as virtual stacks.
<li> Thanks to Volko Straub and Michael Schmid, fixed bugs that caused the
ImageProcessor.isInvertedLut() and ImageProcessor.isColorLut() methods
to sometimes incorrectly return 'true' with thresholded images.
<li> Thanks to Volko Straub, fixed a bug that could cause non-thresholded pixels in
16-bit and 32-bit images to be highlighted in red
(<a href="http://wsr.imagej.net/macros/ThresholdingIssue.txt">example</a>).
<li> Thanks to Thomas Boudier and Jan Eglinger, fixed a bug that caused macro file name
parameters containing a "]" character to not be read correctly.
<li> Thanks to Michael Nonet, fixed a bug caused the median to always be set to zero 
when measuring line selections.
<li> Thanks to Norbert Vischer, fixed a bug that caused errors after running the 
run("RGB Stack") or run("HSB Stack") macro functions on large images when
running Java 8 on macOS.
<li> Thanks to Chris Wood and Curtis Rueden, fixed a bug that caused the
<i>Image&gt;Stacks&gt;Delete Slice</i> command to deadlock when deleting the
last channel of a hyperstack.
<li> Thanks to Stein Rorvik, fixed a bug that caused the <i>Process&gt;Math&gt;NaN Background</i>
command to throw an exception when attempting to process a non-32-bit stack.
<li> Thanks to Stein Rorvik, fixed a bug on Windows that caused text
to be pasted into text editor windows at the wrong position.
<li> Thanks to Stein Rorvik, fixed a bug that caused print("\n\n") to do
nothing instead of outputting two blank lines as expected.
<li> Thanks to 'mryellow', fixed a bug that caused polygonal ROIs with
more than 65,535 points to not be saved correctly.
<li> Thanks to Stein Rorvik, fixed a bug that caused right justified TextRois.
to not be displayed correctly if the fill color was not set.
<li> Thanks to Lorenzo Cangiano and Jan Eglinger, fixed a 1.52c regression
that caused a "Save changes?" dialog to be unexpectedly displayed when 
closing an image with a multi-point selection.
<li> Thanks to Stein Rorvik, fixed a 1.52d regression that caused density 
calibration to be lost when duplicating 8-bit and 16-bit images.
</ul> 

<li> <u>1.52d 11 June 2018</u>
<ul>
<li> The <i>Image&gt;Show Info</i> command no longer truncates 
one line slice labels to 60 charactera.
<li> Thanks to Norbert Vischer, the changeValues() macro function
can now be used to replace NaNs.
(<a href="http://wsr.imagej.net/macros/ReplaceNaNs.txt">example</a>).
<li> Thanks to Mark Histed, when the shift key is down, the display
 range is no longer changed when stepping forward/back in a stack.
 <li> Thanks to Hugo, the <i>Process&gt;FFT</i> command displays an error 
 message if the padded image is going to be 65536x65536 or larger.
 <li> Thanks to Roger Leigh, the IJ.javaVersion() method works with Java 11.
<li> Added the IJ.Roi(x,y,w,h) and IJ.OvalRoi(x,y,w,h) methods.
<li> Thanks to Gregor and Michael Schmid, added the ImageProcessor.createMask() method
(<a href="http://wsr.imagej.net/macros/CreateMaskDemo.js">example</a>).
<li> Thanks to David Kysela, added the PointRoi.promptBeforeDeleting(boolean) method
(<a href="http://wsr.imagej.net/macros/PointsWithPrompting.js">example</a>).
<li> Thanks to Laurent Thomas, added the ImagesToStack.run(images) method
(<a href="http://wsr.imagej.net/macros/ImagesToStack.js">example</a>).
<li> Added the Tools.getStatistics(double[]) method.
<li> Thanks to Ximo Soriano and Michael Schmid, fixed a bug that could cause the
newImage("Name","RGB noise",width,height,1) macro function to throw an exception.
<li> Thanks to Ruben Gres, fixed a bug that caused the Overlay.duplicate() method
to not keep the 'isCalibrationBar' and 'selectable' settings.
<li> Thanks to David Schreiner, fixed bugs that caused the
<i>File&gt;Import&gt;Image Sequence</i> command to not correctly
handle image metadata longer then 60 characters.
<li> Thanks to 'yahbai', fixed bugs that caused the saveAs("jpg",path),
saveAs("gif",path) and Overlay.measure macro functions to not work
in headless mode.
<li> Thanks to 'yahbai', fixed a bug that caused the ImagePlus.deleteRoi()
method to throw an exception in headless mode.
<li> Thanks to Michael Kaul, fixed a 1.52a regression that caused 
an EOFException when opening Analyze format RGB images.
<li> Thanks to Bill Christens-Barry, fixed a 1.52b regression that caused the
label set with the setMetadata("Label", label) macro function to not be displayed
in the image subtitle of single images.
<li> Thanks to Michael Cammer, fixed a 1.52c regression that caused
the <i>Image&gt;Crop</i> command to not work as expected
with 16-bit images.
<li> Thanks to Peter Meijer, fixed a 1.52c regression that could cause
ClassCastExceptions when converting RGB images to stacks.
</ul> 

<li> <u>1.52c 20 May 2018</u>
<ul>
<li> Activating an ROI in an overlay created by <i>Measure</i> (with “Add to overlay" enabled),
or by the particle analyzer, selects the corresponding row in the "Results" table.
<li> ImageJ displays a "Delete Points?" dialog before deleting a multi-point selection
with counters.
<li> Thanks to "zzyzyman", fixed a bug that caused ImageJ to fail to open odd-width RGB AVI files.
<li> Thanks to Merijn van Erp, fixed a bug that caused the CurveFitter.getSortedFitList()
method to throw an exception.
<li> Thanks to Kees Straatman and Bill Christens-Barry, fixed a bug in the macro interpreter 
that caused it to not detect a missing '[' after an array variable.
<li> Thanks to Mike, fixed a 1.52b regression that caused the AVI Reader to
fail with a "Required item ‘00ix’ not found" error.
<li> Thanks to Curtis Rueden, fixed a 1.51t regression that caused errors in
headless mode macros to throw a HeadlessException.
<li> Thanks to 'cortig' and Curtis Rueden, fixed a 1.52b regression that caused
the "Apply" option of the <i>Image&gt;Adjust&gt;Threshold</i> command to not
behave as expected with 16 and 32 bit images.
</ul> 

<li> <u>1.52b 6 May 2018</u>
<ul>
<li> Changed "Random" to "Noise" in the "Fill with:" choice of
the <i>File&gt;New&gt;Image</i> dialog box.
<li> Thanks to Christian Evenhuis, fixed a bug with the
<i>Edit&gt;Selection&gt;Line to Area</i> command that caused 
the resulting area selection to translated if the source was a polyline 
or freeline selection less than 5 pixels wide.
<li> Added the IJ.javaVersion() method.
<li> Thanks to Fred Damen, fixed bugs that caused the
<i>Image&gt;Stacks&gt;Tools&gt;Concatenate</i> command
to sometimes not work as expected.
<li> Thanks to Aryeh Weiss and Michael Schmid, worked around a 
Linux problem with large images not showing at low magnification.
<li> Thanks to Fred Damen, fixed bugs that sometimes caused
slices labels of single slice stacks to be lost.
<li> Thanks to BrainPatcher and Stefan Helfrich, fixed a bug
that caused the ROI Manager's "Multi Measure" command to
not work correctly with point selections.
<li> Thanks to "zzyzyman", fixed a bug that caused ImageJ to
fail to open AVI files that used the 'indx'/'ix00' indexing schema.
<li> Thanks to Moses, fixed a 1.52a regression that caused row
labels to be omitted from tables created by the ROI Manager's
"Multi Measure" command.
<li> Thanks to Jerome Mutterer, fixed a 1.52a regression that caused
imported Results tables to be displayed without row numbers.
</ul> 

<li> <u>1.52a 23 April 2018</u>
<ul>
<li> Thanks to Michael Schmid, added <i>Apply Macro</i>
commands to the <i>Edit</i> and contextual (right click pop-up)
menus of table windows.
Also added the ResultsTable.applyMacro() method
(<a href="http://wsr.imagej.net/macros/ResultsTableMacro.js">JavaScript example</a>).
<li> Thanks to Ron DeSpain, tables created by the <i>Image&gt;Overlay&gt;List Elements</i>
command can be renamed "Results" and the values accessed using the getResults()
and getStringResult() macro functions.
<li> Removed the obsolete <i>Plugins&gt;New&gt;Table</i> command. Macros
that use this command will continue to work.
<li> Thanks to Michael Kaul, added an optional 5th argument
('stepSize') to the Dialog.addSlider() macro function
(<a href="http://wsr.imagej.net/macros/SliderDemo.txt">example</a>).
<li> Thanks to Gabriel Landini, on Linux, added the
“Cancel button on right” option to the <i>Edit&gt;Options&gt;Appearance</i>
dialog box. 
<li> The "showRowNumbers" property of the ResultsTable class now defaults to 'false'.
<li> Thanks to Adrian Daerr, when importing ".raw" files with dimensions encoded
 in the name (e.g. "myfile-640x480.raw"), the byte order is set to
big-endian if the name ends in "be.raw" and to little-endian if the name
ends in "le.raw".
<li> Thanks to Arttu Miettinen, imported ".raw" files with dimensions encoded
 in the name can have a width and/or height less than 10.
<li> Thanks to Stein Rorvik, added toScaled(x,y,z) and toUnscaled(x,y,z) macro functions.
<li> Added 20 macro functions that work with tables. They operate on the
current (frontmost) table or an optional title argument can be provided (e.g., Table.size("My Table")).
Examples: <a href="http://wsr.imagej.net/macros/Sine_Cosine_Table2.txt">Sine/Cosine Tables</a>,
<a href="http://wsr.imagej.net/macros/Rearrange_Resuts_Table.txt">Rearrange Table</a> and
<a href="http://wsr.imagej.net/macros/Access_Tables.txt">Access Tables</a>.
  <ul>
  <li> Table.create() - opens a new table
  <li> Table.reset() - resets (clears) the table
  <li> Table.size() - number of rows in the table
  <li> Table.title() - title of the current table
  <li> Table.headings() - column headings as a tab-delimited string
  <li> Table.get(columnName, rowIndex) - returns a numeric value
  <li> Table.getColumn(columnName) - returns a column as an array
  <li> Table.getString(columnName, rowIndex) - returns a string value
  <li> Table.set(columnName, rowIndex, value) - sets numeric or string value
  <li> Table.setColumn(columnName, array) - sets an array as a column
  <li> Table.update() - updates table window
  <li> Table.applyMacro(macro) - applies macro code to table
  <li> Table.rename(title1, title2) - renames a table
  <li> Table.save(filePath) - saves the table
  <li> Table.open(filePath) - opens a table
  <li> Table.deleteRows(index1, index2) - deletes specified rows
  <li> Table.renameColumn(oldName, newName) - renames a column
  <li> Table.deleteColumn(columnName) - deletes specified column
  <li> Table.showRowNumbers(boolean) - enable/disable row numbers
  <li> Table.showArrays(titleAndOptions, array1, array2, ...) - displays arrays in a table (like Array.show)
</ul>
<li> Thanks to Trevor Joyce and A Schain, added the macro-callable RoiManager.getIndexesAsString() method.
<li> Thanks to Michael Schmid, added the Tools.copyFile(path1,path2) method.
<li> Thanks to Salim Kanoun, added the RoiManager.setRoi(roi,index) and Overlay.set(roi,index) methods.
<li> Thanks to Fred Damen, fixed a bug that caused the SubHyperstackMaker.makeSubhyperstack()
method to not work when extracting a single frame.
<li> Thanks to Fred Damen and Michael Schmid, fixed a curve fitter
bug that could cause a NullPointerException.
<li> Thanks to Norbert Vischer, fixed a bug that caused the File.copy() macro 
function to not preserve the modification date.
<li> Thanks to Philippe Carl, fixed a bug that caused the <i>Image&gt;Hyperstacks&gt;Reduce Dimensionality</i>
command to not preserve the "Info" image property.
<li> Thanks to Jan Eglinger, fixed bugs that caused the roiManager("open",path)
macro function to ignore the roi name and roiManager("save",path) not 
to be recorded when 'path' ended in ".roi".
<li> Thanks to Norbert Vischer, fixed a bug that caused the Image Calculator to not correctly 
calculate the result when the operation is MULTIPLY or DIVIDE, the 1st image is  8 or 16 bit, 
the 2nd image is 32 bit and "32-bit result" is unchecked.
<li> Thanks to Mark Rivers, fixed a bug that caused ImageJ to not 
correctly open some uncompressed planar RGB TIFFs.
<li> Fixed a 1.51s regression that caused statistical calculations on
small 16-bit images or selections to be much slower.
<li> Thanks to Michael Schmid, fixed a 1.51o regression that caused the particle
analyzer to hang when processong 32-bit images.
</ul> 

<a href="http://imagej.nih.gov/ij">Home</a>
</body>
</html>