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 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260
|
TOPIC: FOTOCX USER GUIDE v.24.70
View using the Fotocx menu Help > User Guide
TOPIC: INTRODUCTION
{FOTOCX OVERVIEW} - description, prerequisites, license, downloads
{FOTOCX CAPABILITIES} - summary of Fotocx functions and tools
TOPIC: FOTOCX USAGE
{INSTALLATION} - Fotocx software installation, dependencies
{FIRST STARTUP} - information for Fotocx first startup
{OUTBOARD PROGRAMS} - required and optional programs used by Fotocx
{FIRST INDEX} - locating and indexing image files for fast searching
{USER GUIDE} ← ^click here^ - how to use this user guide browser
{WINDOW VIEWS AND MENUS} - top-level windows and associated menus
{FILE VIEW} - File View window (view single image file)
{GALLERY VIEW} - Gallery View window (view thumbnails)
{MAP VIEW} - map view window (view map with image location markers)
{MENU SUMMARY} - outline of menu groups and contents
{DRAG AND DROP} - file drag and drop methods
{EDIT PROCEDURES} - how to edit image files
{EDIT WORKFLOW} - alternative edit methods - simple and complex
{MOUSE OWNERSHIP} - dialog-mouse control and interaction
{MOUSE ALT-RIGHT-BUTTON} - mouse right-button for touchpads/screens
{DIALOG BUTTONS} - dialog completion options
{KEYBOARD ENTER KEY} - functions of Enter key
{KEYBOARD ESCAPE KEY} - functions of the Escape key
{CUSTOM DIALOG WIDGETS} - how to use custom dialog widgets
{CURVE EDITING} - how to manipulate curves used in edit functions
{BATCH PROCESSING} - overview of batch processing functions
{SELECT IMAGE FILES} - image file selection procedure
{POPUP REPORTS} - keyboard navigation for text-based popup reports
{MENU SHORTCUTS} - popup menus, keyboard shortcuts, custom user menu
{COLLECTION MANAGEMENT} - collection management and image searching
{RIGHT-CLICK MENUS} - popup menu functions for File and Gallery View
{KEYBOARD SHORTCUTS} - keyboard shortcuts for file/gallery/map views
{NUMERIC KEYPAD} - navigation using numeric keypad
{MOUSE FUNCTIONS} - mouse functions for file/gallery/map views
{COMMAND PARAMETERS} - Fotocx command line parameters
{TOP PANEL DATA} - details of information in the File View top panel
{FILE MENU}
{NEW SESSION} - start new Fotocx session in a separate window
{OPEN IMAGE FILE} - open an image file for view or edit
{CYCLE 2 FILES} - cycle through the two most recently seen image files
{CYCLE 3 FILES} - cycle through the three most recently seen image files
{VIEW 360° PANO} - 360° panorama image with rotating viewpoint
{RENAME} - rename an image file
{PERMISSIONS} - view and set permissions for an image file
{CHANGE ALPHA} - add or remove alpha channel for an image file
{BLANK IMAGE} - create blank image with specified size and color
{COPY/MOVE} - copy or move an image file to another folder
{COPY TO DESKTOP} - copy an image file to the desktop
{COPY TO CLIPBOARD} - copy an image file to the clipboard
{DELETE/TRASH} - delete or trash an image files
{CONVERT ADOBE} - convert Adobe files (.pdf/.ps/.eps/.psd) to jpeg
{SET WALLPAPER} - wallpaper from the current image file (Gnome)
{PRINT IMAGE} - print an image file
{PRINT CALIBRATED} - print using color calibration data
{CALIBRATE PRINTER} - calibrate printer color - compensate color shifts
{QUIT} - exit from Fotocx
{GALLERY MENU}
{GALLERY OVERVIEW}
{THUMB VIEW} - Gallery View with thumbnails and file names
{META VIEW} - Gallery View with thumbnail and basic metadata
{RECENT FILES} - Gallery View of most recently seen image files
{NEWEST FILES} - Gallery View of newest image files
{GALLERY SORT} - change the sort order of a gallery
{GALLERY SCREEN} - select newest, oldest, matching pattern ...
{GALLERY HOME} - jump to gallery start
{GALLERY END} - jump to gallery end
{CURRENT FOLDER} - set current gallery from current file folder
{RECENT FOLDERS} - open Gallery View of last used file folder
{FOLDER TREE} - show all image file folders in a tree structure
{SELECT FILES} - select files for input to batch, script or album
{RENAME FOLDER} - rename current folder (file gallery)
{ADD SUBFOLDER} - add new subfolder to existing image folder
{BOOKMARKS} - view list of bookmarks, go to bookmark
{EDIT BOOKMARKS} - add, remove, arrange bookmarks
{MANAGE ALBUMS} - create and arrange user-defined image collections
{UPDATE ALBUMS} - update albums for updated image files
{ALBUM MASS UPDATE} mass update of multiple album files
{GALLERY TO ALBUM} - save current gallery as a named album
{SLIDE SHOW} - slide show with animated transitions and pan/zooms
{MAPS MENU}
{WORLD MAP} - internet world map overview
{MAP REGIONS} - define custom map region names, goto map region
{MAP LOCATION} - find location name from partial input, goto map location
{MAP MARKERS} - show map markers for all images or current gallery
{SHOW ON MAP} - show an image file position in Map View
{CUSTOM MENU} - custom user menu for frequently used functions
{SCRIPT FILES} - script files overview
{EDIT SCRIPT} - record edits in a script to make a custom edit function
{RUN SCRIPT} - execute script on current image
{BATCH SCRIPT} - execute script on selected image files
{PLUGINS} - start a plugin edit function, open plugin output file
{ZOOM} - left/right click or [+-] button to zoom image or thumbnail
{FILE SAVE} - save image file (replace, new version, new file name)
{METADATA MENU}
{VIEW MAIN META} - list main image metadata
{VIEW ALL META} - list all image metadata
{METADATA STANDARDS CHAOS} - multiple conflicting standards
{TAGS OVERVIEW} - image tags (keywords) used for image searching
{EDIT MAIN META} - edit commonly used metadata
{EDIT ANY META} - edit any metadata (add, remove, change)
{DELETE META} - delete specified metadata or all metadata
{COPY META} - copy metadata from one image file to another
{FIX META} - repair malformed metadata preventing metadata edits
{MANAGE TAGS} - manage user-defined tags
{CAPTIONS} - show file name, title, description in image corner
{PLACES/DATES} - list image locations/dates, click for gallery
{TIMELINE} - show image counts by year/month, click for gallery
{AUTOSEARCH} - scripted Search function to find files
{SEARCH IMAGES} - search using any metadata or folder/file names
{SELECT MENU}
{AREA OVERVIEW} - select area - concepts and usage
{SELECT AREA} - select image feature or area for separate editing
{FIND AREA GAP} - find gap in hand-drawn area outline
{AREA BLEND} - mouse-blend edits made within a selected area
{SHOW/HIDE AREA} - show or hide area outlines
{ENABLE/DISABLE AREA} - enable or disable an area for editing
{INVERT AREA} - invert an area (exchange outside/inside areas)
{CLEAR AREA} - remove an area
{COPY/PASTE AREA} - copy an area or paste area into current image
{LOAD/SAVE AREA} - load an area from a file or save to a file
{UNDO/REDO BUTTON} - sequential undo or redo edits to current image
{EDIT MENU}
{ROTATE} - rotate or level an image
{UPRIGHT} - upright a rotated or mirrored image
{CROP} - crop (trim) image margins
{RETOUCH} - edit brightness, contrast, color, saturation
{RESCALE} - change the image pixel dimensions
{MARGINS} - add margins to an imqage, any color or transparency
{MARKUP} - draw on image: text, line/arrow, box, oval
{COLOR MODE} - convert to black & white, color, negative, positive
{PAINT EDITS} - mouse-paint an edit function locally and gradually
{PAINT IMAGE} - mouse-paint with a color, brush size, and opacity
{PAINT TRANSP} - paint increasing transparency using the mouse
{AREA FILL} - fill selected areas or transparent areas with a color
{COPY IN IMAGE} - copy pixels within an image using the mouse
{COPY FROM IMAGE} - copy pixels from another image using the mouse
{COPY PRIOR EDIT} - copy pixels from prior edits using the mouse
{EDIT TEMPLATE} - coding template for new edit functions
{REPAIR MENU}
{SHARPEN} - sharpen a blurred image, multiple methods
{BLUR} - blur an image or image area, multiple methods
{DENOISE} - reduce image noise (small random specks)
{DEFOG} - add or remove fog/haze from an image or selected area
{RED EYES} - remove red eyes from flash photos
{SMART ERASE} - remove power lines, signs, other small spoilers
{REMOVE HALO} - remove halos left by sharpen and other functions
{JPEG ARTIFACTS} - suppress artifacts in highly compressed files
{ANTI-ALIAS} - suppress pixelation (jaggies) along feature edges
{ADJUST RGB} - adjust image colors using RGB or CMY colors
{ADJUST HSL} - select and change colors using HSL colors
{REMOVE DUST} - remove dust spots on images from old photos
{FRINGES} - fix pheripheral color fringes (chromatic aberration)
{REFINE MENU}
{EDIT HISTOGRAM} - edit brightness histogram for better detail
{FLATTEN HISTOGRAM} - flatten brightness histogram for better detail
{LOCAL CONTRAST} - add contrast adapted to local area brightness
{AMPLIFY CONTRAST} - amplify existing contrast to enhance details
{GLOBAL RETINEX} - rescale RGB values for greater range
{LOCAL RETINEX} - rescale RGB values for greater range
{SATURATION} - adjust color saturation based on brightness
{SOFT FOCUS} - apply classic "soft focus" effect to an image
{MATCH COLORS} - match the colors in one image to another image
{BRIGHTNESS RAMP} - add a brightness/color ramp across an image
{VIGNETTE} - change brightness/color radially around chosen center
{EFFECTS MENU}
{OUTLINES} - convert an image into an outline drawing
{SKETCH} - convert an image into a simulated sketch
{CARTOON} - convert an image to a cartoon-like drawing
{EMBOSS} - convert an image to a simulated embossing (3D effect)
{TILES1} - convert an image into square tiles with 3D effect
{TILES2} - convert an image into irregular tiles matching image
{PAINTING} - convert an image into a simulated painting
{TEXTURE} - add texture to an image or selected area
{PATTERN} - add a background pattern to an image
{DITHER} - different ways to pixelize or posterize an image
{ENGRAVE} - convert an image into black & white lines
{MOSAIC} - convert image into a mosaic using tiles made from images
{ADD NOISE} - add random noise to an image
{SET COLORS} - reduce the number of colors (posterize)
{SHIFT COLORS} - gradually shift RGB colors to GBR or BRG
{ALIEN COLORS} - add random strange colors to an image
{CUSTOM KERNEL} - edit and apply a custom convolution kernel
{WARP MENU}
{UNBEND} - straighten images having curved lines, esp. panoramas
{PERSPECTIVE} - straighten object photographed from an obtuse angle
{WARP AREA} - warp a selected image area by pulling with the mouse
{WARP CURVED} - warp image by mouse drag - curvy warp
{WARP LINEAR} - warp image by mouse drag - straight lines preserved
{WARP AFFINE} - warp image by mouse drag - parallel lines preserved
{WARP RADIAL} - add or remove barrel or pincushion distortion
{UNWARP CLOSEUP} - remove close-up face photo distortion (big nose)
{MAKE WAVES} - warp an image with a wave pattern
{TWIST} - twist an image around a chosen center point
{SPHERE} - curve an image into a spheroid shape
{INSIDE-OUT} - invert the center-edge distance of each pixel
{TINY PLANET} - wrap a panorama image around a circle
{ESCHER SPIRAL} - transform an image into an endless inward spiral
{FLATTEN PHOTO} - flatten a photo of a curved surface
{COMBINE MENU}
{HDR} - combine dark/bright images for an extended brightness range
{HDF} - combine close/far focused images for extended depth of field
{STACK/PAINT} - combine images to remove transient cars, tourists, etc.
{STACK/NOISE} - combine images to reduce noise by averaging
{STACK/LAYERS} - combine image versions, select/paint area/version
{STACK/SPLIT} - show two images overlapped with movable boundary line
{PANORAMA} - combine a series of images horizontally
{SHOW CIM FILES} - show input files for current/latest combined image
{MASHUP} - arrange images and formatted text in a custom layout
{IMAGE ARRAY} - join many images into a compact array format
{BATCH MENU}
{BATCH CONVERT} - copy, move, rescale, rename, convert, add text ...
{BATCH COPY/MOVE} - copy/move selected image files to a new folder
{BATCH UPRIGHT} - scan for rotated image files and upright them
{BATCH DELETE/TRASH} - delete or trash selected image files
{BATCH RAW} - convert RAW files to JPEG/PNG/TIFF, 8 or 16 bit color
{BATCH OVERLAY} - add overlay image (copyright ...) to selected images
{BATCH TAGS} - add or remove tags for selected image files
{BATCH RENAME TAGS} - rename tags for selected or all image files
{BATCH PHOTO DATE} - change photo dates or times, or shift time zone
{BATCH CHANGE META} - add or revise metadata for selected image files
{BATCH REPORT META} - report metadata for selected or all image files
{BATCH MOVE META} - move metadata between keywords - standardize usage
{BATCH GEOTAGS} - add or revise geotags for selected or all image files
{EXPORT FILE LIST} - make a list of selected files (e.g. shell script)
{EXPORT FILES} - export selected files to a folder (e.g. web upload)
{TOOLS MENU}
{INDEX FILES} - 1-time job to find and index all image files
{QUICK INDEX} - quick incremental index with no user interaction
{SETTINGS} - user preferences and settings for Fotocx operation
{KB SHORTCUTS} - show and revise keyboard shortcuts for menu functions
{RGB HISTOGRAM} - brightness histogram graph for current image
{MAGNIFY IMAGE} - turn mouse into a magnifying glass over image
{MEASURE IMAGE} - measure pixel distances within image (mouse clicks)
{SHOW RGB} - show RGB values at mouse position or for selected points
{GRID SETTINGS} - show or remove grid lines, set line count or spacing
{LINE COLOR} - set color for select area outlines
{DARK/BRIGHT PIXELS} - tool to highlight clipping
{MONITOR COLOR} - tool to adjust monitor brightness and contrast
{FIND DUPLICATES} - find duplicate images in a gallery or all images
{SHOW RESOURCES} - show CPU time and current memory usage
{HELP MENU} - user guide, tutorial, change log, about Fotocx, uninstall
{OTHER TOPICS}
{VIDEO FILES} - video files, thumbnails, playing
{WEB UPLOAD} - uploading image files to the internet
{MOVE FOTOCX HOME} - move Fotocx home folder to a new location
{ORGANIZING IMAGES} - organizing image files for effective searching
{PRIVACY} - privacy policy and privacy considerations
{PROBLEM REPORTING} - how to analyze and report problems
{LOG FILE} - Fotocx log file and crash report file (zappcrash)
{QUESTIONS, SUGGESTIONS} - how to contact the Fotocx author
{TECHNICAL TOPICS}
{FOTOCX LIMITATIONS} - size and performance limits
{RUNNING OUT OF MEMORY} - memory limits and performance
{RUNNING OUT OF DISK SPACE} - disk space requirements
{SYMBOLIC LINKS} - how these are handled and what to avoid
{PREVIEW MODE} - method for higher interactive performance
{SUPPORTED FILE TYPES} - what image file types are supported
{INDEX DATA FILES} - index data files and contents
{COLOR DEPTH ISSUES} - meaning and limitations
{NOISE MEASUREMENT} - how is noise measured
{RAW IMAGE NOISE} - noise in RAW image files
{SLIDES AND NEGATIVES} - how to capture slides and film negatives
{HIGH QUALITY IMAGE UPSCALE} - how to upscale 2x with best quality
{ROTATE PERFORMANCE} - interactive rotation performance
{ALIGNMENT ALGORITHM} - how images are aligned (panorame, HDR, etc.)
{ALPHA CHANNELS} - how alpha channels are handled
{IMAGE DETERIORATION FROM REPEATED EDITS} - analysis
{INTERPOLATION METHOD} - technical description
{JPEG COMPRESSION} - technical description
{JPEG IMAGE DETERIORATION} - analysis
{METADATA ERRORS} - description and handling
{NEWLINE CHARACTERS IN METADATA} - description and handling
{DIALOG WINDOW POSITIONING} - description
{FOTOCX PERFORMANCE} - methods and limitations, benchmarks
{E-CORES AND HYPERTHREADS} - how useful are these?
{FOTOCX PACKAGES} - package file contents
{FOTOCX HOME FOLDER} - user data files in Fotocx home folder
{IMAGE METADATA USAGE} - description and limitations
{FOTOCX SOURCE CODE} - how to access Fotocx source code
{FOTOCX FOR WINDOWS 11} - installing Fotocx on Windows 11 WSL
{ACKNOWLEDGEMENTS}
{ALL TOPICS INDEX} alphabetical index of all topics in this document
TOPIC: FOTOCX OVERVIEW
^Description
Fotocx is a free Linux program for editing photos or other images and managing a large collection. Navigate the collection using a thumbnail browser, click on an image to view or edit. Import RAW files and edit with deep color. Fotocx has powerful tools to correct and enhance photos. Images can be altered with special effects, and arranged in a montage with text and creative artwork. Select an object or area within an image (freehand draw, follow edges, flood matching tones...), apply edit functions, copy and paste, resize, blend, warp, etc. Edit functions have fast feedback using the full image or a selected zoom-in area. View and edit metadata (dates, tags, titles, descriptions, ratings, location, camera data - any metadata). Quickly find desired images within a huge collection, based on folder and file names or embedded metadata. Click a marker on a scalable world map to view all photos from that location. Batch functions are available to rename, add/revise metadata, copy/move, resize, convert format.
^Hardware Requirements
Fotocx works best on a strong computer, e.g. a 3+ GHz multi-core CPU with 16 GB RAM and SSD storage. A weaker computer will generally work, but may be slow for some functions and unable to edit large images. A monitor smaller than HD (1920x1080) will feel too small for some functions using multiple windows. The monitor should of course have accurate color.
^Software Requirements
Most recent Linux distributions can be used to host Fotocx.
Windows WSL works with limitations. See ^https://kornelix.net/fotocx_topics/
^License and Warranty
Fotocx is licensed under the GNU General Public License v3. Fotocx source code is free to use, modify, and share with others. Fotocx is not warranted for any purpose, but if you find a bug, I will try to fix it.
^Contact
If you have a question, suggestion, or problem, contact me at
^mkornelix@gmail.com
^Downloads
Fotocx source and binary packages are available at
^https://kornelix.net
Both package types are easy to install and instructions are provided. The source package is like Debian source packages ($ sudo make install). The binary package works on most recent (>2022) flavors of Linux. To avoid compatibility problems, it includes library files which may be missing or incompatible depending on your flavor and release of Linux. If some other library is missing, an error message is shown when the program is started (start from a terminal to see this). Find and install the missing library using your package manager.
^Packages by 3rd Parties
Installable packages for many popular Linux distributions can be found here:
^https://repology.org/metapackage/fotocx/packages
Some of these are old and should be avoided. Note the release number and date.
^Updates and Bug Fixes
Fotocx is updated periodically with new capabilities and bug fixes. Serious bugs are usually fixed within a few days of being known, and a new release is published on the kornelix.net web site. Fotocx is also available on many other web sites and package repositories. These may not be updated for new releases. Some of these are years out of date and should be avoided.
^User Guide
Fotocx is easy to use but unconventional. If you try to use Fotocx while ignorant, you will be frustrated and may conclude that Fotocx is hard to use. You would be wrong. To avoid getting stuck, please read the introductory sections of this user guide. Help for individual functions can be referenced as needed during Fotocx use, by pressing the F1 key. Fotocx has deep functionality. Do not expect to master Fotocx in a few minutes.
TOPIC: FOTOCX CAPABILITIES
Here is a summary of what Fotocx can do:
• Organize and manage a very large photo/image collection.
• Comprehensive user guide and popup context help via F1 key.
• Thumbnail browser/navigator with variable thumb size and metadata view.
• Click thumbnail for full-size view, image zoom in/out and pan/scroll.
• RAW file conversion, single or batch, output with 8 or 16 bits per color.
• Large set of functions to edit, repair, refine, and transform images.
• Internal processing in 24 bits per color (float), output in 8 or 16 bits.
• Edited files have a version number, originals are retained by default.
• Fast edit visual feedback using the full image or selected zoom-in area.
• Undo/Redo button - compare original/edited versions (instant replace).
• Conventional edit functions: rotate, upright, crop, rescale, add margins,
retouch: brightness/color/contrast/saturation/temperature/white balance,
markup: text (decorative features)/lines/arrows/boxes/circles/ellipses,
edit colors using RGB or HSL, convert B&W/color/negative/positive/sepia.
• Repair functions: sharpen, blur selected areas, denoise, defog, red eyes,
smart erase (remove spoilers), remove halos, suppress JPEG artifacts,
anti-alias (suppress jaggies), remove dust spots, fix color fringes.
• Refine functions: edit or flatten brightness histogram (enhance detail),
increase local contrast (enhance detail), match colors to master image,
add soft focus, amplify existing contrast, global and local retinex,
add brightness ramp in any direction, add/remove vignette (via curve edit).
• Special effect conversions: sketch, outlines, cartoon, emboss, painting,
tiles, texture, pattern, dither (5 modes), engrave, mosaic, shift colors,
add noise (hide color bands), set no. of colors (per RGB), alien colors.
• Warp image: unbend (wide-angle photos, panoramas), warp selected area,
fix perspective (photo from an angle), warp image (linear/curved/affine),
unwarp closeup (fix balloon face), add waves, twist image, make sphere,
turn inside-out, tiny planet, escher spiral, flatten curved horizon,
flatten photo of curved surface (thick book page, poster on a column).
• Edit functions can be 'painted' locally and gradually, using the mouse.
• Copy areas within and across images by mouse painting and blending.
• Create or maintain transparent image areas while editing.
• Combine images: HDR (combine bright/dark images, adjust contributions),
HDF (combine different focus depths), stack/layer combinations by area,
panorama (2-6 images), make an array or matrix of many images.
• Mashup: arrange images and text in an arbitrary layout using the mouse.
(objects can be resized, rotated, overlapped with transparent areas ...)
• Custom user menu: collect frequently used functions into one menu.
• Plugins: use Gimp, Imagemagic ... as embedded Fotocx edit functions.
• Scripts: record image edits, package as an edit function to re-use.
• Select image objects or areas to edit separately from the background:
outline by hand, follow feature edges, 'flood' into matching colors ...
• Complex feature edges can be accurately selected (e.g. hair, foliage).
• Batch tools: rename, resize, convert, export, add/revise/report metadata,
convert RAW files, add overlay text, apply custom edit script.
• Metadata edit and report (tags, dates, titles, geotags ... any metadata).
• Search images using any metadata and folder/file names or partial names:
dates, tags, locations, ratings, titles, descriptions, exposure data ...
• Show a list of images by location and date range, click for image gallery.
• Show an image calendar, click on year or month for a gallery of images.
• Scalable internet map, click on marker for gallery of images at location.
• Add location names and geocoordinates to an image by clicking on the map.
• View 360 degree panorama image (Google Street View format).
• Show video files as thumbnails (using any video frame), play video.
• Show animated GIF files as thumbnails (first frame), play animation.
• Bookmarks: assign names to folder/file locations, go to name (gallery).
• Create albums with chosen images arranged by drag & drop. No duplication.
• Slide show: show album images with animated transitions and pan/zoom.
• Print an image at any scale. Printer color calibration tool is available.
• Custom keyboard shortcuts can be assigned to chosen functions.
• Cycle wallpaper images from a Fotocx album or any folder of image files.
• Source and binary packages are installable on most recent Linux flavors.
• Gnu GPL3 license (everything is free to use as you please).
TOPIC: INSTALLATION
There are three variations of Fotocx installation:
• Use the package from your Linux repository (which may be quite old).
• Use the distro-agnostic binary package from the kornelix.net website.
Follow the instructions on the download page to install the package.
• Use the source code package (tarball) from the kornelix.net website.
Follow the build instructions (basically $ sudo make install).
This has a performance advantage if you add compiler optimization
for your target machine ($ gcc -march=native).
Download page: ^https://kornelix.net/downloads/downloads.html
TOPIC: FIRST STARTUP
There are two initialization tasks to be performed:
(1) install outboard programs, some mandatory and some optional
(2) create the image index and thumbnail images
TOPIC: OUTBOARD PROGRAMS
+image: outboard-programs.png
When Fotocx is started for the first time, the above report is presented, listing the required and optional outboard programs that Fotocx uses, the function provided by each, and whether the program is installed or not. If any required program is not installed, you are asked to install the program. In this case, Fotocx will exit when the dialog is closed. After installing the required programs, start Fotocx again. You can show this list at any time with the menu Help > Outboard Programs. You can decide later if you need to install optional outboard programs to handle image files other than those supported by default: JPEG, PNG, TIFF and most RAW formats.
Package naming and contents vary by Linux distro (the usual chaos). The above names, or something similar, may be findable in your Linux flavor. Happy hunting.
^WEBP files (.webp)
If the program dwebp is installed, Fotocx will recognize .webp files. When opened, a .tif temporary file is created and viewed. If the image is modified and saved as a new version, a .jpg file is created:
filename.webp --> filename.v01.jpg.
^Apple iPhone HEIF files (.heic .avif)
Apple iPhones can produce image files with the extension .heic. If the program heif-convert is installed, Fotocx will recognize .heic files. When opened, a .jpg temporary file is created and viewed. If the image is modified and saved as a new version, a .jpg file is created:
filename.heic --> filename.v01.jpg. This also works for .avif files.
^JPEG-2000 files (.jp2)
If the program opj_decompress is installed, Fotocx will recognize .jp2 files. When opened, a .tif temporary file is created and viewed. If the image is modified and saved as a new version, a .jpg file is created:
filename.jp2 --> filename.v01.jpg.
^Adobe document files (.pdf .ps .eps)
If the gs command (ghostscript) is installed, these files can be converted to
JPEG files, one per document page. Use the menu function File > Convert Adobe.
^Adobe (Photoshop) image files (.psd)
If the convert command (imagemagick) is installed, these files can be converted into JPEG files.
Use the menu function File > Convert Adobe.
TOPIC: FIRST INDEX
+image: first-index.png
When Fotocx is started for the first time, it will ask to index your image files. This makes the gallery pages (thumbnails) work fast, enables fast search based on indexed metadata (tags, photo date, location, comments ...), and enables clickable map markers to view images by location. You can defer this step if you wish, but search, batch, and map functions will be disabled and galleries will be slow. The index function will ask for one or more 'top' folders (e.g. /home/<user>/Photos). Subfolders are automatically included. Other non-image files can be mixed-in and will be ignored. Indexing speed can range from a few hundred to >20K files per minute, depending on image types, sizes and computer speed. Fotocx does not modify or copy your image files - it only reads them to make the metadata index and thumbnails. The additional file space is typically 2% of your total image collection size.
^Upgrade from a Fotocx prior release
Normally the index file is not affected, so that no re-indexing is required. If the index file format in the new release has changed, a full re-index will be needed. You are warned in this case. If your image collection is huge, and your computer is slow, a long time may be needed. My relatively strong computer (Intel ultra 7-265K) indexes about 23K jpeg images per minute (mean size 2.7 MB).
+image: index-files1.png
^Top image Folders
These are the top folders for your image files, e.g. /home/<user>/Pictures. Subfolders under your top folders are automatically included, to any depth. Use the [select] button to locate and add your top image folders, one or more. Other files may be mixed with your image files. It may be useful to select the subfolders instead of the parent (as shown above), which will give you a more direct access to individual folders. A practical limit is about 30 Top folders. Each may have hundreds of subfolders.
^Thumbnails
This is the folder where thumbnail files will be placed. These are typically 2% as large as your image files (30 KB compared to megabytes). You can use the supplied default or choose another location. Indexing will run faster if this is on separate physical storage from the image files. If you use SSD storage, this does not matter.
^Metadata Items
The following metadata is included in the image index by default: folder and file names, photo date/time, file modification date/time, title, description, rating (0-5 stars), tags (keywords for image contents), geotags (location and country names and latitude/longitude). Searching a large image collection for one or more of these items is almost instantaneous.
You can choose up to 10 extra metadata items to include in the image index. These will also be almost instantaneous to search. You may not need this. You can ignore this initially and add items later if needed. For more details, see {INDEX FILES}.
^Index Time Required
If you have many thousands of image files, the initial index may need time. The speed can range from a few hundred to >20K files per minute, depending on processor speed, disk speed, and average file type and size. See {FOTOCX PERFORMANCE} for more information.
When you add new image files to your collection, the next Fotocx startup will index only the new files. If there are only a few new files, startup will be fast. If there are many new files, startup will need time to index them, as described above.
^Removable Storage
If your top image folders include folders on a removable drive, and you run Fotocx without the drive mounted, the index data and thumbnails are still preserved, even though the image files have disappeared. When the removable drive is mounted again, and Fotocx is started, the last status is restored. If any files were added or modified in the interim, this is detected and index data and thumbnails are updated. For more details, see {INDEX FILES}.
^Blacklist Folders
You may have some files that cannot be read by Fotocx or one of its essential tools: dcraw and exiftool. Some image files, especially from older cameras, may have internal format errors or a proprietary format that depends on OEM software. If Fotocx or one of its tools crashes on such a file, there is a way to move it out of the way and stop Fotocx from trying to deal with it. Using a text editor, list the file names or folder names containing the problem files. Save this file with the name "blacklist" in your Fotocx home folder, e.g. /home/<user>/.fotocx/blacklist. The character '*' may be used as a wildcard that matches any number of characters. Here are some examples:
exclude an entire folder: /folder/path/name/*
exclude a single file: /folder/path/name/filename.jpg
exclude files containing "asdfg" anywhere in path/file name: *asdfg*
exclude files containing "asdfg" in any folders in the path: *asdfg*/*
Another way: move the problem files out of declared top image folders.
^Fotocx home
This is where user preferences, settings and data are kept (image files remain at their original locations). The default is /home/<user>/.fotocx (like most Linux apps). If you have multiple Linux installs and want to share the same Fotocx data, you can move this to a mounted volume. See {MOVE FOTOCX HOME}. If multiple users have access to the same image files, each can have their own Fotocx home for preferences and settings, and the image files can be in a shared folder not under a /home/<user>/ folder.
TOPIC: USER GUIDE
+image: userguide.jpg
Open the user guide from the menu Help > User Guide. While using Fotocx, you can press the F1 key to see the User Guide topic for the current menu function or the function most recently used.
The [home] key jumps to the top (table of contents). The [end] key jumps to the end (alphabetical index). To scroll the text, use arrow-up/down and page-up/down keys. The [Find] button opens a dialog for a text search. Enter the desired text and press the [Find] button in this same dialog. Press again for the next occurrence. The keyboard 'F' key also opens the search dialog.
Underlined text is a clickable link to a topic, e.g. {INDEX FILES}. Use the keyboard left/right arrow keys or the buttons [<] and [>] to go back and forth between topics most recently viewed. The button [Recent] presents a list of most recently viewed topics. Click on a topic to go there.
{INDEX FILES} <-- click this text and then press [<] to see what happens.
Web links (^https://...^) can be clicked to view the web page using your web browser.
TOPIC: WINDOW VIEWS AND MENUS
+image: fotocx-views.jpg
^Menu Buttons
The icons in the left side panel are menus. When one is clicked, a popup menu appears. These are functions for image viewing and editing, searching, reports and utilities. The top three menus (File, Gallery, Maps) set the corresponding view mode if not already set. The keyboard keys F2/F3/F4 can also be used.
TOPIC: FILE VIEW
File View is for viewing or editing an image. To zoom an image, left-click a position on the image. The image will grow with each click and the clicked position will move to center. A right-click will restore the image to fit within the window. The Z-key can also be used to alternate between fit-window and 1x image size (1 image pixel is 1 monitor pixel). To pan or scroll a zoomed image, left-drag the mouse across the image. The image can move with the mouse or in the opposite direction (like scroll bars), depending on a user setting (see {SETTINGS}). The movement may be 1:1 with the mouse, or may be magnified for faster movement. The mouse wheel can also zoom an image in or out. Use the menu buttons (Edit, Refine, etc.) to modify the image. Use the File Save button to save a modified file: replace the file, create a new file version, or create a new file (new file name).
^Keyboard Navigation Options
The keyboard arrow keys can be used to step sequentially through the image files in a gallery.
^left/right arrow keys
View the previous or next image file in the current gallery. If you reach the start or end of the gallery, a popup message indicates this. You cannot go further.
^up/down arrow keys
View only the last version of each image file. This is the original file if no versions exist. If you reach the gallery start or end, a popup message indicates this. You can proceed to the previous or next gallery by pressing the key again. The UP key goes backwards, the DOWN forwards (next file or gallery).
TOPIC: GALLERY VIEW
All image files in the current folder are shown as thumbnails. This may be hundreds or thousands of images. You can scroll through the thumbnails and navigate to other folders. Use the vertical scroll bar to scroll up and down within a gallery. The keyboard keys can also be used: the arrow up/down keys scroll rows, the page up/down keys scroll pages, and the home and end keys jump to the beginning (top) and end (bottom) of the gallery. You can also scroll the gallery up/down with the mouse wheel. Use the {ZOOM} menu button or the keyboard [+] and [–] keys to change the thumbnail size. Clicking on a thumbnail will change to File View and display the image full size. This image is now the "current image". Pressing the F3 key or the 'gallery' menu button will return to Gallery View, with the current image scrolled to the top row. The folder path is shown at the top of the gallery window, with one button per folder level. Click on a folder button to show a gallery for that folder. Its subfolders will be shown as folder thumbnails. Click one of them to show a gallery for that folder. Click the [TOP] button to choose another top image folder, the root folder ( / ), your home folder, your Desktop folder, a gallery of the most recently viewed images, or a gallery of the newest images (most recent images added or modified).
There are several types of galleries:
• Folder: all the image files in a single folder
• Images in an Album: an arbitrary collection from various folders
• Recent Files: the most recently viewed or edited image files
• Newest Files: image files most recently added or modified
• Report output: thumbnail images with associated text (metadata)
• search_results: images found by the Search function. Also an album.
The gallery window title bar will show the folder name (path), the album name, or "Recent Files" or "Newest Files". If the gallery corresponds to a folder, buttons for navigating to its parent folders are shown in the top panel. The other gallery types have only the buttons for Album (select an album) and TOP (select a top image folder).
A gallery thumbnail has a right-click menu with some commonly used functions. One of these is Popup Image, which creates a popup window with a larger image that can be rapidly zoomed to any size with the mouse wheel. Multiple popup windows can be open at once. This is useful for comparing multiple photos or multiple edited versions.
Popup Image Manipulation:
• Click thumbnail with middle mouse button: popup image appears
• Click thumbnail with shift + left mouse: popup image appears
• Mouse scroll wheel: zoom the popup image bigger or smaller
• Key F11: make popup image full screen, or return to prior size
• Left mouse button: close the popup image
• Escape key: close the popup image
TOPIC: MAP VIEW
View maps containing markers corresponding to image locations. Click on a marker for a Gallery View of the corresponding images. This depends on your image files having embedded geotag data (latitude, longitude). Modern cameras insert this automatically, and you can also add this data yourself. Initially a world map is displayed. Use the mouse wheel to zoom-in/out at any location. Left/right mouse clicks also zoom in and out. Shift the map center using mouse drag. The entire world can be viewed at any scale down to street-level.
TOPIC: MENU SUMMARY
+image: menu-summary.jpg
The image above is an overview of the functions available in each menu group. A left-click on a menu icon has two functions: set the corresponding view if not already current, or show a popup menu with all of the functions for this menu group. Some menu functions will work independently of the current view mode, or will change the view mode as needed.
TOPIC: DRAG AND DROP
Fotocx accepts drag-drop of image files to File View or Gallery View. In File View, the file is opened. In Gallery View, the result depends on the type of gallery. If the gallery is a folder, the file is added to the folder and the gallery will show the new file in its sorted position. If the gallery is an album, the file is added to the album in the position where it is dropped. This works also if a text string that is a valid image file name is dropped.
TOPIC: EDIT PROCEDURES
The image in File View mode (the current image) can be modified with the edit functions in the menus Edit, Repair, Refine, Effects, Warp and Combine. These functions modify the current image in memory and in the window. You can use these functions in any order, and edits are accumulated. When you are finished editing, use the [Save] menu button to save the modified image back to the same file, to a new file version (e.g. filename.v01.jpg), or to a new file name and/or folder. Image edit dialogs have sliders, buttons, spin buttons, or editable curves that immediately update the image. The response time to display the updated image depends on the size of the image, the complexity of the function and the speed of your Computer. This is typically less than a second for most edit functions on a strong computer.
Left or right click the Undo/Redo button to undo or redo the currently active edit function. After an image has had one or more edits applied, the undo/redo button can be used to step back and forth through all the completed steps to view the image status after each step. The middle mouse button shows a popup list of all edits done to the current image, and you can select any step to go back to. The image can be re-edited from any prior step. This will discard edits done after this step, since they are dependent on this step. Re-applying the same edits is sometimes facilitated because the settings used in prior edits are often used as a starting point. This undo/redo capability remains as long as the edited image remains as the current image. If another image is opened, the edit history is discarded.
TOPIC: EDIT WORKFLOW
You can speed the editing of multiple photos/images if you understand the following rules and methods:
• Choosing a new edit function automatically completes an active
edit. The new edit starts with the result of the prior edit,
and an undo/redo position is created.
• Opening a new image file during an edit function cancels the
edit. The edit function is restarted with the new file.
• The [Save] button can be used during an active edit to save
the current image status (replace, new version, or new file).
The edit function restarts and an undo/redo position is created.
• Some frequently used functions have a [Prev] button to recall
previous settings, making it easier to process multiple photos
needing similar adjustments.
Here is an example workflow for the initial rotate and crop of a new batch of photos. You can process one photo every few seconds (+ think time).
1. Go to the folder with the new photos to process.
2. Open the first file.
3. Menu: Edit > Rotate - upright (±90°) or level by dragging edge
4. Press [crop] button, crop image margins by dragging edges
5. Press [Save] button and choose "new version".
6. Press [Prev/Next] button (right click) to edit the next file.
Press again to skip over the file.
Repeat steps 3-6 for each image.
^Simple Workflow
Most of the time you can just edit the JPEG file that comes out of the camera. Use the following more complex procedure only if you see "color bands" or "posterization" after editing the image, an indication that JPEG 8-bit color is limiting the visible image quality.
^Complex Workflow
To edit with deep color (over 8 bits), start with the camera RAW file.
There are two options for processing RAW files:
• Click the RAW file gallery thumbnail. The RAW file may now be edited
like any other image file. Fotocx edit functions work with 24 bits
per color, so the full color depth of the RAW file is preserved.
Save the edited file as type TIFF or PNG with 8 or 16-bit color,
or JPEG with 8 bits. You cannot save an edited image as a RAW file.
Opening a RAW file may need several seconds. Saving an image as
PNG is much slower than JPEG or TIFF.
• Use the menu Batch > Batch RAW. You can select many RAW files and
convert all of them as described above. You can then select and
edit these files as needed with Fotocx.
Fotocx can do most things you can do with a RAW editor. The key is to start with the RAW file or a derived file with 16-bit color depth, so that nothing is lost. When you open a RAW file in Fotocx, the chosen RAW loader is used with parameters you can change (see {SETTINGS}).
RAW files may have more color depth than 8 bits, especially if the camera is new and expensive. Converting into a PNG or TIFF file with 16-bit color will preserve whatever color depth is available in the RAW file. The higher color depth reduces the risk of visible color bands if your edits radically shift the brightness histogram. When finished editing, convert the final file to JPEG (quality level 70 or greater) to reduce the final file size to 10% or less. Note that editing in deep color is far more important than having deep color in the final image. It is nearly impossible to see a difference between a 16-bit TIFF or PNG file and a quality JPEG made from that same file. To preserve the ability to re-editing the image later, keep the RAW file, which is usually much smaller than the TIFF or PNG file.
Dcraw is the default RAW file loader. You can also use a more complex RAW editor like Raw Therapee if you prefer (see {SETTINGS}). Dcraw is simple and fast in comparison. The many options in a RAW editor can usually be done more easily with Fotocx edits.
TOPIC: MOUSE OWNERSHIP
Some edit dialogs use the mouse to reference or alter the image in the main window. There may be more than one such dialog active at the same time. The mouse is also used to zoom and scroll the image, and you may need to do this while using an edit dialog. Therefore it is important to understand who owns the mouse (which dialog or main window) and how to change the ownership:
• For dialogs using the mouse on an image (paint, select area ...),
the mouse is owned by the dialog that was last used and now
retains KB focus. Mouse actions on the image are inputs to
this dialog and DO NOT zoom or scroll the image.
• If you hold the CTRL key down while clicking or dragging
the mouse on the image, the image will zoom or pan/scroll.
Open dialogs are not affected.
• The mouse wheel can always be used to zoom-in/out any part
of the image as long as the mouse is on the image and not on
a dialog widget (which may be modified by the mouse wheel).
TOPIC: MOUSE ALT-RIGHT-BUTTON
For touchpads and touchscreens, some right-mouse functions are missing or clumsy, e.g. right-drag is sometimes missing. If the ALT key is held while pressing the left mouse button, this is interpreted as the right mouse button.
TOPIC: DIALOG BUTTONS
These mostly work as follows:
[Reset] undo changes, return to initial status
[Apply] apply dialog settings to image, leave dialog active
[Done] same as [Apply], but the dialog is closed
[OK] same as [Done]
[Cancel] discard image changes and close the dialog
[Proceed] proceed with lengthy task based on dialog inputs
[X] close dialog
TOPIC: KEYBOARD ENTER KEY
Many applications handle this key as 'done', meaning that input is complete and the function can be executed. Fotocx does NOT follow this convention. The Enter key action depends on which dialog widget has keyboard focus:
• text entry (single line) - input is finished.
• text entry (multi-line) - a new text input line is started.
• number entry - input is finished.
• check box - toggle status between 'checked' and 'not checked'.
• button - the button is pressed, same as clicking the button.
TOPIC: KEYBOARD ESCAPE KEY
This key has multiple uses. It affects only the window that has current keyboard focus. This can be the main Fotocx window or a dialog window. Before using the escape key, note which window has focus and change this if needed.
• main window has focus:
• if a long-running function is still running, terminate it
• if the main window is maximized, restore prior size
• if the current view is gallery or map, change to file view
• none of the above: exit Fotocx
• dialog window has focus: kill the dialog (same as [x] button)
• others: cancel popup image, exit 360 panorama viewer, hide the
User Guide window, interrupt or exit Slide Show.
TOPIC: CUSTOM DIALOG WIDGETS
+image: custom-widgets.png
Some non-standard widgets are used to reduce dialog size or improve the ease of use. They work almost like standard GTK widgets. The numeric data widget works like a GTK spin-button: the mouse wheel and keyboard up/down arrow keys can be used to rapidly run the value up or down. If using a touchpad, tap the entry to position the cursor, then use the keyboard to enter a value, or use the keyboard up/down arrow keys to rapidly index to a new value. If the key is held down, the change rate accelerates over time. The shift key can be used to increase the change rate by 10x. The nonlinear slider expands the scale around the neutral value, so that small changes can be controlled more precisely, especially with a touchpad. A few standard GTK widgets have been reduced in size by removing excess padding. This is controlled by the file 'widgets.css' in the Fotocx home folder. You can modify this file if desired. You can delete items or mark them as comments, but do not delete the file, since it will be automatically replaced.
TOPIC: CURVE EDITING
+image: retouch.png
Some image edit functions use editable curves. You can manipulate the curves to change some property of the image depending on some other property. The example here shows a curve to change brightness depending on brightness (e.g. brighten dark areas without changing bright areas). Generally, the curve X-axis is the input property (brightness in this example) and the Y-axis the output property (also brightness). The curves can be moved (pulled) with the mouse. "Up" increases the effect and "down" decreases the effect. An anchor point (black dot) is added to the curve wherever it is pulled, and this point remains fixed for subsequent pulls: the curve will continue to go through this point as other parts of the curve are pulled. Anchor points can also be dragged. Delete an anchor point by right-clicking it.
TOPIC: BATCH PROCESSING
There are several batch functions in the {BATCH MENU} to speed some common tasks. You can select many image files and execute the batch function for all of them. Batch functions can be used for the following tasks:
• Rename files and add sequence numbers or photo dates to the names
• Convert file types (e.g. .png to .jpeg)
• Find and upright photos made with the camera turned 90 degrees
• Rescale files (e.g. reduce for web upload or e-mail)
• Copy or move files to another location
• Convert RAW files to tiff, png, or jpeg
• Add/change/remove image tags or geotags
• Report or revise metadata items
• Set image dates/times or shift times to change the time zone
• Delete files or move them to Trash
• Find duplicate image files.
TOPIC: SELECT IMAGE FILES
+image: select-image-files.jpg
This procedure is used for all functions operating on multiple image files:
• batch functions - rescale, rename, add tags, convert ...
• scripts - perform a predefined set of edits on one or more image files
• albums - create and edit image collections
The procedure is explained here, and this topic is linked from each of the functions using the procedure.
Selected files are added to a list by clicking on gallery thumbnails. The example shows a gallery and a list of files selected from the gallery.
• add a file to the list: left-click gallery thumbnails
• add multiple files: click first thumbnail, shift-click last
• add all images in the gallery: press the [Add All] button
• add the current image: press the [Add Current] button
• a file may be added multiple times to the list
• navigate to other galleries to select more files as needed
• delete a file from the list, 2 methods:
• right-click the file's gallery thumbnail
• click a list position and press the [Remove] button
• clear the list: press the [clear] button
• use KB up/down arrow keys to step through list, view thumbnails
• the KB page up/down and home/end keys also work
The [Disable] button will disable thumbnail clicking to select files. The button is then renamed to [Enable] - press to restore thumbnail clicking. The purpose of this is to enable the normal thumbnail popup menus and left-click to view a file at full size (not available while thumbnail clicks are being used for file selection). You may need these functions during the screening process for selecting files. You can stay in file view mode and index through the images using the arrow keys, while using the [Add Current] button to add files to the selection list.
TOPIC: POPUP REPORTS
Text reports are shown in a popup text window. Some of these have clickable report lines that trigger actions, e.g. a list of location names that can be clicked to show a gallery of images for the selected location. These reports can be navigated with the keyboard arrow keys, page keys, and home/end keys.
TOPIC: MENU SHORTCUTS
Fotocx menus are large. You may need time to get used to them and remember where functions are located. There are three shortcut methods for frequently used functions:
• Right-click the main window or gallery window thumbnail.
A popup menu appears with some commonly used menu functions.
• Keyboard shortcuts - these are documented below. You can change
the shortcut keys and add shortcuts for functions you choose.
• Custom menu - collect frequently used functions in one menu.
See {CUSTOM MENU}.
TOPIC: COLLECTION MANAGEMENT
You can use Fotocx to manage a huge image collection and still be able to quickly find wanted images. Some effort to organize your images is required. Search methods include folder and file names or partial names, photo dates, file dates, ratings, tags (labels for persons, places, objects, events ...), words found in titles and descriptions, location names and latitude/longitude). Any available image metadata can be used for image searching. Options for how to organize a large collection are explained the topic {ORGANIZING IMAGES}.
TOPIC: RIGHT-CLICK MENUS
Popup menus appear when an image or gallery thumbnail is right-clicked. Most of these functions are also contained in the main menus for File View and Gallery View. The popup menus are shorter and faster to use for the functions they contain.
^File View popup menu
Right click on current image in File View mode to get the following menu:
• View Main Meta - Show short form metadata report
• View All Meta - Show all available metadata
• Edit Main Meta - Edit main metadata items: photo date/time, tags ...
• Rename - Change the file name
• Delete/Trash - Delete the image file or move it to trash
• Copy/Move - Copy or move the image file to another folder
• Copy to Desktop - Copy the image file to the desktop window
• Copy to Clipboard - Copy the image file to the clipboard
• Rotate - level the image or turn 90 degrees
• Crop - Trim image margins
• Retouch - Adjust brightness, color, contrast, saturation ...
• Rescale - Rescale the image pixel width and height
• Sharpen - Sharpen a blurred image, multiple methods
• Blur - Blur the image, multiple methods
• Denoise - Filter noise from low-light photos
• Edit Histogram - Edit the brightness histogram
• Flatten Histogram - Flatten the brightness histogram
• Local Contrast - Add contrast adjusted for local image area
• Amplify Contrast - Amplify existing contrast to enhance details
• Saturation - Adjust saturation, optionally based on brightness
^Gallery View popup menu
Right click on thumbnail image to get the following menu:
• Popup Image - Show image in a new window - zoomable, movable.
Zoom in/out using the mouse wheel. Zoom down to disappear.
• View Main Meta - Show short form metadata report
• View All Meta - Show all available metadata
• Edit Main Meta - Edit main metadata items: photo date/time, tags ...
• Rename - Change the file name
• Delete/Trash - Delete the image file or move it to trash
• Copy/Move - Copy or move the image file to another folder
• Copy to Desktop - Copy the image file to the desktop window
• Copy to Clipboard - Copy the image file to the clipboard
Album galleries have the following menu additions:
• Add Selected Files Here - insert previously selected files
at the clicked thumbnail position
• Add Current File Here - insert current (last viewed) file
at the clicked thumbnail position
• Remove from Album - remove this image file from the album
VIDEO files have the following menu addition:
• Thumbnail Frame - select thumbnail frame
(select video frame at minutes/seconds position)
TOPIC: KEYBOARD SHORTCUTS
Keyboard shortcuts are available for most menu functions. Use the menu Tools > KB Shortcuts to view or change them. The notation "Ctrl+X" means press and hold the Ctrl key, then press the X key.
The following keyboard functions are fixed and cannot be changed:
• [+] [=] key Zoom image or thumbnails larger
• [-] key Zoom image or thumbnails smaller
• Z key Toggle image between 1x (full size) and fit window
• F1 key Display user guide for current or prior function
• F2/F3/F4 key Change to File/Gallery/Map view mode
• F10 key Toggle main window full-screen and back
• F11 key Same as F10, without menus, title bar and top panel
• Escape key Kill running function, Exit active dialog
• Arrow ←/→ Show previous/next image file in current gallery
• Arrow ↑/↓ File view: like ←/→ but show only last versions
Gallery view: scroll one row up/down
Report: scroll report up/down one row at a time
• Page Up/Down Gallery view: scroll one page up/down
Report: scroll report up/down one page at a time
• Home/End Gallery view: go to first/last page in gallery
Report: go to report start/end
• K key KB Shortcuts - dialog to view or change shortcuts
• H key (help) Display user guide for current or prior function
(Ctrl+H within dialogs does the same)
TOPIC: NUMERIC KEYPAD
+image: number-keys.png
The numeric keypad can be used for navigation with or without 'num-lock'. The following keys have the same function as in Keyboard Shortcuts above:
[+] [-] Arrow ←/→ Arrow ↑/↓ Page Up/Down Home/End
TOPIC: MOUSE FUNCTIONS
File View
• left click - Zoom-in: magnify image, center at click position
• right click - If image is zoomed: restore to window size
If not, popup menu with common functions
• mouse wheel - Zoom image in or out depending on wheel direction
• left drag image - Pan/scroll zoomed image (see {SETTINGS})
• Ctrl + mouse - Mouse acts on image instead of active dialog
Gallery View
• left click thumbnail - Change to File View, show full-size image
• right click thumbnail - Show popup menu with common functions
• middle click thumbnail - Pop up image in new zoomable window
• scroll mouse wheel - Scroll the gallery page up or down
Map View
• left click - Zoom map larger at clicked location
• right click - Zoom map smaller
• left drag - Drag map, following the mouse
• mouse wheel - Zoom map larger or smaller
• left click on marker - Show gallery of images at map location
Text reports and User Guide - text can be selected and copied to the clipboard in the usual manner (AKA copy and paste).
TOPIC: COMMAND PARAMETERS
The following parameters can be used if Fotocx is started from
a terminal with the the command: $ fotocx:
^long short params description
-help -h show user guide
-album -a "album name" album (gallery)to open
-ver -v output release version and exit
-recent -r show gallery of recent image files
-new -n show gallery of newest image files
-prev -p show last file viewed in prior session
-blank -b show a blank window
-cwp N name cycle wallpaper, N secs, album/folder name
-menu -m "menu" Fotocx will start with this menu active
-devmenu -d show normally hidden developer menu
-home /folder alternate Fotocx home location (see below)
-x0 -x1 -x2 set index level to 0, 1, or 2 (see below)
^-x0 -x1 -x2 parameter^ (set index level at startup)
These parameters can be used to override the value in {SETTINGS}.
-x0 no index: very fast startup with reduced functionality
-x1 existing index: fast startup, omit new/modified images
-x2 existing index: find and add new/modified images
Note: the first Fotocx startup after a reboot may be slow if your image collection is very large. Subsequent startups will be faster since folders are now cached in memory. For very fast startup, you can bypass indexing entirely with the command "fotocx -x0", or by setting the image index level = 0 in {SETTINGS}. Search and map functions will be disabled until you allow the indexing to complete normally. See also the topix {INDEX FILES}.
^-home^ parameter (alternate Fotocx home folder)
The default location for 'fotocx home' is: /home/<user>/.fotocx. This is where user preferences and settings are kept (tag names, bookmarks, defaults ...). Image index data is also kept here. The command "fotocx -home <foldername>" expects 'fotocx home' to be in the designated folder. This enables multiple image collections to be managed separately. If Fotocx is started for the first time with a new -home parameter, the initial file indexing process will begin. You can avoid this by copying the files in /home/<user>/.fotocx to the new home folder before starting fotocx with the new -home parameter. See {MOVE FOTOCX HOME}.
^-cwp^ parameter (cycle desktop wallpaper)
The full command line is: $ fotocx -cwp secs container
This command can be used to cycle the desktop wallpaper using a set of images from a Fotocx album or any folder containing image files. 'secs' is the interval in seconds between images. 'container' is either a Fotocx album name or the path name of a folder containing image files (folder name begins with '/'). Use this command in your log-in startup list to get a new wallpaper at specified intervals. Use an interval of a day or more to get a new wallpapr image with each log-in. The last image used is remembered, and each startup begins with the next image in the sequence. The last image is followed by the first image. If 'secs' is zero, one wallpaper update will be made and Fotocx will then exit.
TOPIC: TOP PANEL DATA
+image: top-panel.png
The top panel has status information about Fotocx and the current image file. The following strings can be present, in approximately the following order:
2000x1243x8 current image width x height x depth (bits/color)
69% zoom status, image size (window/image pixels)
edits: 1 current edits, reversible with [undo/redo] button
blocked some functions blocked until current function done
area active edits are confined within the active selected area
dialog open an active dialog is waiting for user input
working 45% progress indicator for long-running function
^Bit Depth
This shows the bits per RGB color of the current file. This is 8 bits for JPEG, and 8 or 16 bits for PNG or TIFF. If you opened a RAW file, the actual value recorded in the RAW file EXIF data is shown. Common values are 8/12/14/16 bits. When a RAW file is edited, this is done in 24-bit precision, regardless of the bit depth of the input file.
TOPIC: FILE MENU
+image: ug-file.png
TOPIC: NEW SESSION
Start a new Fotocx session in a new window. This is useful to compare images or to work with more than one image at a time. Both windows can be used to edit images. The new session will initially have an unmodified version of the current image file. If the same image file is edited in both windows, neither instance will see the changes made by the other, and the final result is the last file saved.
TOPIC: OPEN IMAGE FILE
Select an image file to view or edit, using a conventional file open dialog with folders and lists of files. Click on a file name to select and open. Unlike normal usage for Fotocx, no thumbnail gallery is displayed. This is useful for the case where files are not indexed and gallery display is very slow, e.g. reading from a camera SD card containing thousands of image files.
TOPIC: CYCLE 2 FILES
Open the previously opened image file. Repeating this menu will alternate between the two most recently opened files. This function retains the current image zoom size and position, which is ideal for rapidly comparing two edited versions of the same image. Zoom-in the area to compare, and use this function to alternate between the two images. The default keyboard shortcut is key [2].
TOPIC: CYCLE 3 FILES
This works the same way as Cycle 2 Files, but alternating the last 3 opened files. The default keyboard shortcut is key [3].
TOPIC: VIEW 360° PANO
The current file is opened with a special viewer for 360° panorama files. The image width is assumed to be 360°. Use this function to view Google 'photosphere' images. Use the mouse and keyboard to control the view:
• Mouse-drag: pan horizontally 360° and wrap-around at the ends
• Left and right arrow keys also pan the image horizontally
• Left and right mouse-click will zoom-in and zoom-out
• Use Escape to exit the special viewer
Panoramas with less than 360° can also be viewed, and the two ends will wrap-around regardless.
TOPIC: RENAME
+image: rename.png
Rename the current file (File View), or the file of a clicked thumbnail (Gallery View). Enter a new name and press [apply]. This function can also automate the process of renaming a series of image files using a root name (e.g. an event or place name) and a sequence number. Open the first image file in the series, input a new name, and press the [apply] button. Use the [next] button to move to the next file if wanted. You can use the same name again by pressing the [previous name] button and then add a suffix or sequence number. Press the [add 1] button to increment the sequence number. File version numbers (.vNN) are not copied and are otherwise not affected.
TOPIC: PERMISSIONS
+image: permissions.png
The permissions of the current file (File View), or the file of a clicked thumbnail (Gallery View), are shown in the dialog. Use the [Change] button to revise the permissions data in the dialog, and the [Apply] button to change the permissions of the named file. You can use the arrow keys to navigate to new files in the same neighborhood, and the data in the dialog will be updated. The three permissions shown are for the owner of the file, members of the owner's group, and others. An explanation of Linux permissions can be found in the man page for the "chmod" command.
TOPIC: CHANGE ALPHA
+image: change-alpha.png
The dialog shows whether or not the current image file has an alpha channel, containing pixel transparency values. If an alpha channel is present, the [remove] button will remove it. There is no new version - the current file is updated on disk. The opacity values in the alpha channel are applied to the RGB values before the alpha channel is removed: RGB values are multiplied by the alpha value / 255. Completely transparent areas are made black (RGB 0), and partly transparent areas will become darker. If no alpha channel is present, the [add] button will add one, with all values = 255 (fully opaque).
TOPIC: BLANK IMAGE
+image: blank-image.png
Create a blank image with specified pixel dimensions and color. This can be used as a background for cutouts taken from other images (via Select Area) and annotation text (via {MARKUP} draw text). Input a file name, choose a background color, and set the desired pixel dimensions. See also {MASHUP}.
TOPIC: COPY/MOVE
+image: copy-move.png
The current file (File View) or the file of a clicked thumbnail (Gallery View) is copied to the given location. This location can be entered directly or chosen by a file open dialog if the [browse] button is used. Select the copy option to copy the file and leave the source file in place, creating a duplicate. Select the move option to move the file from the original location to the new location. A group of files can be rapidly processed by clicking each thumbnail followed by [apply]. The [Prev] button can be used to copy the previously used file name. Add a version number or something else to avoid a duplicate file name.
TOPIC: COPY TO DESKTOP
The current file (File View) or the file of a clicked thumbnail (Gallery View) is copied to the desktop folder (/home/<user>/Desktop).
TOPIC: COPY TO CLIPBOARD
The current file (File View) or the file of a clicked thumbnail (Gallery View) is copied to the clipboard, from which other applications can paste.
TOPIC: DELETE/TRASH
+image: delete-trash.png
The current file (File View) or the file of a clicked thumbnail (Gallery View) is deleted or moved to trash, depending on the option selected. Fotocx assumes the standard for trash (~/.local/share/Trash). Because GTK cannot trash files on mounted volumes, files are moved to ~/Desktop first, and then to trash. If such a file is restored from trash, it will show up on the desktop. If you have multiple files to remove, you can leave the dialog open to speed the process. If another file is opened, the file name in the dialog is updated. In Gallery View, if another thumbnail is clicked, the dialog is updated.
TOPIC: CONVERT ADOBE
A file open dialog can be used to find and open an Adobe file of type .pdf .ps .eps or .psd. Convert an Adobe document file (.pdf .ps .eps) into a set of jpeg image files, one per document page. The output file names have the input file name with the page number appended: filename-N.jpg. Output file pixel size depends on the 'paper size' of the document file (e.g. US Letter: 2479 x 3508). The program 'ghostscript' must be installed. Photoshop image files (.psd) can be converted to .jpg, one output file with the same root name as the input file, and the same pixel size. The program 'imagemagick' must be installed.
TOPIC: SET WALLPAPER
The desktop wallpaper is set from the current file. NOTE: this is Gnome specific and may not work for other desktop systems.
TOPIC: PRINT IMAGE
+image: print-setup.png +image: print-margins.png
The print image menu brings up a standard Page Setup dialog where you can select a printer, a paper size, and orientation. After using the [apply] button, another dialog starts for entering paper margins and image scale. The margins can be used to shrink the image or shift it on the page. Image scale can be set in the range 5-100%, where 100% means print the maximum size image that fits within the margins. Smaller values will shrink the image proportionally. The actual print size (image width and height) is updated in the dialog as margins and scale are changed, and this can be used to reach a desired print image size. After the margins dialog, a Print dialog starts for the actual printing. This includes paper type and quality inputs, and a preview of the printed layout which can be accepted or rejected. If grid lines are shown on the image, the printed image will also have the grid lines, although much thinner.
If the image has select area(s), you are asked if only the select area(s) should be printed. These will be printed using the minimum rectangle needed to enclose the areas, and areas outside the selections are not printed (white paper).
TOPIC: PRINT CALIBRATED
This function works like Print Image File described above, but before printing you are asked to supply a calibration file name which is used to adjust image colors prior to printing. The purpose is to compensate for color distortions caused by the printer. See the topic {CALIBRATE PRINTER} (below) for details on how to create a calibration file.
TOPIC: CALIBRATE PRINTER
+image: printer-calibrate-chart.png +image: calibrate-printer.png
This utility may be able to improve the color accuracy of printed images.
^How It Works
A chart of colors is printed on the target printer. Some of the printed colors will be slightly wrong due to printer imperfections. This printed page is scanned into a file, and the colors in this file are compared to the original colors that were printed. Any differences are errors that are now known. When an image file is printed, these errors are subtracted from the image colors before printing. The printer adds the errors back, leaving a result that is theoretically correct. My own result was a modest improvement, detailed below.
Hopeful Assumptions
• Your scanner produces accurate colors. Scanners are generally
more accurate than printers.
• The printer color errors are small enough that negating them
before printing will cancel most of the error. This is less
likely if the errors are large.
• The limited set of colors in the chart (1728) can be used
to calculate all other colors (each color adjustment is
interpolated from nearby colors in the chart).
Perform the following steps in sequence, as listed by the dialog window. Each step has instructions to perform the step. All files normally reside in the folder <fotocx-home>/printer_color/.
1. Generate and print the color chart file (printchart.png) on
the printer to be calibrated. Use large paper size, vertical
orientation, no margins.
2. Scan the printed chart into a PNG file. Use 300 dpi or more.
3. Edit the PNG image to crop margins left by the scanner.
Save the edited image file.
4. Process the edited image file to create a color map file.
Use a name indicating the printer settings and paper type,
so the file can be matched to future print jobs.
After making the color map file, you can print any image using step 5 only.
There is also menu function to do step 5 only: {PRINT CALIBRATED}.
Precautions For Best Results
• Use a large paper size for printing the chart to make the color
tiles as big as possible.
• Clean the scanner glass. Smudges will falsify colors.
• Scan with a high DPI setting (300+) to make a large chart file.
This will make the next step more accurate.
• Scanners can skew a scanned image into a slightly non-rectangular
form. If this happens, you will notice it when trying to crop the
margins: the fat green margin lines will not align perfectly with
the crop rectangle, even after slightly rotating the image for
best fit. If his happens, use {PERSPECTIVE} to square the image
first, then crop the margins.
• When editing the scanned chart image, be sure the darkest row is
at the top. Crop the margins surrounding the color tiles. Use the
fat green margin line surrounding the color tiles as a guide:
cut off this line exactly, leaving only the tiles. Work with 2x
magnification while adjusting the crop rectangle. Accurate crop
is critical. The tile positions are calculated from the final
image dimensions, assuming 35 equal columns and 50 equal rows.
If some edge tiles are cut short, or if margins are left, then
the calculated tile positions will be offset, and the measured
colors will be wrong. A small error of 1-2 pixels is tolerated,
because the outer 20% of each tile is not used to read the tile
color. You can use the keyboard arrow keys for 1-pixel movements
in the crop rectangle. The last corner pulled with the mouse is
the corner that the arrow keys will move.
• If you notice black or white spots in the scanned chart image
(from dust), fix them with {COPY IN IMAGE}.
• The output color map file can be used only for the paper and
printer settings used for the calibration. Any other combination
needs its own calibration and color map file.
^Results^ (my Canon printer)
+image: printer-calibrate.png +image: printer-cal-study.png
The chart above is a photo of three images:
upper left: a printout of a photo of a standard color chart
upper right: a calibrated printout of the same photo
bottom: the color chart itself
TOPIC: QUIT
+image: quit.png
This is used to exit Fotocx. A popup dialog will ask for confirmation if this option was selected in {SETTINGS}. To exit Fotocx, press the [Yes] button or the 'Y' key or the Enter key. To continue Fotocx, press the [No] button or the 'N' key or Escape. If there are unsaved file changes, or if a long-running function is still running, you are warned and given the chance to cancel or quit anyway.
TOPIC: GALLERY MENU
+image: ug-gallery.png
TOPIC: GALLERY OVERVIEW
+image: image-management.png
A gallery of thumbnail images can represent a file folder, the output of an image search, one of the built-in galleries (recent files, newest files), or an album (an ordered list of image files with a given name). Folders should be limited to a few thousand files for practical and performance reasons, but no limit is enforced. A scrolling gallery window is limited to 7 million pixels high (internal GTK limit). If 'normal' thumbnails are used (256x256) and if there are six thumbnails per row, about 140K files can fit in the window.
^Scrolling the Gallery
The gallery can be scrolled up and down using the keyboard up and down arrow keys or page-up and page-down keys. [home] and [end] keys may also be used. Use the right-side scroll bar to move rapidly to any position. Left-click and hold on the scroll bar, over or under the scroll button, and the gallery will scroll rapidly to the click position. Right click and hold on the scroll bar to make the gallery scroll slowly to the click position. Continue holding the mouse button and move to the side to increase the scroll speed.
TOPIC: THUMB VIEW
+image: gallery-view.jpg
Image files in the current gallery are shown as an array of thumbnails. The text is limited to file name, date, and size. Size is in pixel width and height if the current thumbnail size is small, and the MB size is added if the thumbnails are larger and more space is available. Use the zoom button {ZOOM} to change the thumbnail size.
TOPIC: META VIEW
+image: meta-view.jpg
Image files in the current gallery are shown together with the basic metadata used by Fotocx. If custom indexed metadata items are present, these are shown following the standard items.
TOPIC: RECENT FILES
The 1000 most recently seen image files (viewed or edited) are shown in a gallery, from which you can select files to view or edit. To replace the recent files gallery with the folder of a chosen file, use the function {CURRENT FOLDER}.
TOPIC: NEWEST FILES
The 1000 most recently added or modified image files are shown in a gallery, from which you can select files to view or edit. You are given a choice of using the EXIF photo date or the file modification date to determine newest images. If the EXIF date is chosen, image files that have no EXIF date are ignored. To replace the newest files gallery with the folder of a chosen file, use the function {CURRENT FOLDER}.
TOPIC: GALLERY SORT
+image: gallery-sort.png
Choose the sort key and ascending or descending order. The Reset checkbox resets all galleries to file name ascending.
If an Album gallery is sorted, the output does not replace the album but creates a new album named "albumname-sorted". This is done because albums have an order established by the user when image files are added. If sorted, there would be no automatic way to put it back in the original order.
Folder galleries retain their sort order and scroll position when viewed later (i.e. when other galleries are viewed in-between).
^File Name/Number
This is a modified sort by file name. If multiple files have names that differ only by embedded numbers in the same position, this group of files will be sorted in the order of the embedded numbers. The example here illustrates the difference:
alphabetic order: abc1xx abc11xx abc123xx abc3xx
numeric order: abc1xx abc3xx abc11xx abc123xx
^Metadata from Search Function
If the gallery was generated by the {SEARCH IMAGES} 'metadata report' option, and if you added optional metadata items to the standard report, you can sort the gallery by these metadata items. You can sort the gallery by camera make, lens info, ISO level, exposure time ... any available metadata.
TOPIC: GALLERY SCREEN
+image: gallery-screen.png
Select a subset of the current gallery and create an album named "gallery_screen" containing the selected image files.
Selection options:
all files select all image files
originals original files (no version number)
versions versioned files (have been edited)
last versions last versions (or originals with no version)
rating range files with rating within the given range
tag names files having any of the given tags (comma separated)
filename text files with any of the given text strings (comma separated)
If "filename text" is checked and a corresponding text string is entered, only image files containing this text in the base file name are selected (folder names are ignored). See also {SEARCH IMAGES} for a more complete (and complex) image search tool.
TOPIC: GALLERY HOME
TOPIC: GALLERY END
Jump to the first or last thumbnail in the current gallery.
TOPIC: CURRENT FOLDER
Set the current gallery from the file folder of the current image file. This is handy if you want to return to the current file gallery after displaying an album or performing a search.
TOPIC: RECENT FOLDERS
Set the current gallery from a recently used gallery. This lets you more easily go back and forth among recent galleries.
TOPIC: FOLDER TREE
+image: folder-tree.png
All top image folders are shown initially. Click on [+] to unfold subfolders, or on [-] to fold them back in. You can click on any folder to get a gallery of the images in that folder. Keep the window open to navigate anywhere in your image collection. This function is also available using the [TOP] button in the gallery top panel.
TOPIC: SELECT FILES
Pre-select image files for use as inputs for creating albums or for batch functions or script functions. These functions will use the pre-selected files by default, but they also allow the selection to be modified or done over. The procedure for selecting files is described in the topic {SELECT IMAGE FILES}.
TOPIC: RENAME FOLDER
+image: rename-folder.png
The current folder (image gallery) is renamed. This must be a file gallery, not an album, search result, etc. After renaming, the {INDEX FILES} function is started, to update the Fotocx image index for the image files contained in the renamed folder. This could take some time if the number of files is great. All albums are also updated for the revised folder names.
TOPIC: ADD SUBFOLDER
+image: add-subfolder.png
Add a new subfolder to an existing image folder. Navigate to the parent folder first. This must be a file folder, not an album folder. Start this menu function and enter the new subfolder name. If the parent folder is included within your list of top image folders, or if it is a subfolder within one of these, then nothing more is needed. If not, and if you want images added to this new folder to be indexed, you need to add the folder, or its parent, to the list of top image folders. See {INDEX FILES}.
TOPIC: BOOKMARKS
+image: bookmarks.png
View existing bookmarks. Bookmarks are chosen locations (folder/file names) with user-assigned names. Click on a bookmark to show a gallery of thumbnails starting with that location. Select [Edit Bookmarks] to add, delete, or rename a bookmark.
TOPIC: EDIT BOOKMARKS
+image: edit-bookmarks.png
After starting Edit Bookmarks, click on a gallery thumbnail to add this location to the bookmark list. The assigned bookmark name will initially be the file name corresponding to the thumbnail. This name appears in an edit field where you can assign another name. If you select an existing bookmark with a mouse click, its name is shown in the input field. You can change the name or press [delete] to remove the bookmark. New bookmarks are inserted after the last bookmark location selected.
TOPIC: MANAGE ALBUMS
+image: manage-albums.png
An album is an arbitrary sequence of images that is manually assembled from existing images. An album is a list of its member image files. The image files themselves are not copied or changed. A given image file can be a member of multiple albums, or may be present more than once within an album. Albums can be used to group images with some shared attributes, such as photos of a given person taken at different times or events, a "best photos" collection, etc. You can add and remove images in an album or rearrange their order. Once an album is made, you can call it up by name and it shows as a gallery. Keep in mind that editing an image in an album will edit the underlying image file, so any other way to view this image will show the same changes.
^Create
Enter a name for a new album. You can make an empty album, an album with pre-selected image files from {SELECT FILES}, an album with images from the current gallery, or you can select the initial images for the album. The gallery could also be the result of a Search operation.
^Rename
Choose an existing album and enter a new name.
^Delete
Choose an existing album and delete it permanently.
^Select
The standard file selection dialog is opened ({SELECT IMAGE FILES}). When done, right-click on an album thumbnail and select "add selected files here" to insert the new files. The selected files may also be removed from the album (see below).
Edit an album: right-click an album thumbnail and select from the popup menu:
• Add selected files here - previously selected files are added
before or after the thumbnail, depending on whether the left
or right side of the thumbnail was clicked.
• Add current file here - works the same way.
• Remove from album - the clicked file is removed from the album.
Add files to an empty album (no thumbnails):
• Gallery View > Album button -> select the empty album.
• Manage Albums > Select Files: select initial files for the album.
When you exit Select Files with the [OK] button, the selected
files are added to the album.
^Drag and Drop
You can rearrange images in an album by dragging thumbnails with the mouse. Drag the thumbnail until the mouse cursor changes to a small thumbnail image. Continue dragging this image to the position where it should be inserted, and release the mouse button. Position the mouse roughly between the thumbnails where the dragged image is to be inserted. If the drag approaches the top or bottom edge of the window, the gallery will scroll to bring more images into view. You can use two Fotocx sessions to make the selection or movement of many images faster. Drag and drop images from any source gallery on to a target album gallery. The source gallery can be an album or any gallery.
TIP: If image files are renamed or moved using Batch Convert, and if deletion of the original image files was also specified, then all albums containing any of the files are updated to the new file names and locations. Therefore, do not rename folders if they contain images in albums, or manually move image files among folders. Instead, use Batch Convert to move the image files to the new folder, then delete the old folder if empty. To delete image files, use Batch Delete/Trash. This will also purge deleted files from albums.
^Desktop Wallpaper
See {COMMAND PARAMETERS} ^-cwp parameter^ to use Fotocx for cycling the desktop wallpaper image using a Fotocx album or any folder with image files.
TOPIC: UPDATE ALBUMS
+image: album-replace-file.png
Replace specified album files with specified replacements, or add specified new files after specified existing files. Select one or more albums to be processed. In gallery view, click on two thumbnails to specify 'old file' and 'new file' in the above dialog. Select the option: 'new file' replaces 'old file' wherever found, or 'new file' is added to albums after 'old file'. Press [clear] to erase the files and start over. Press [proceed] to process the albums. After processing, the dialog is repeated with the same albums selected and the same 'replace or add' option. You can select two more files and press [proceed].
TOPIC: ALBUM MASS UPDATE
+image: album-mass-update.png
This is a utility for some of the mass updates that you may need after creating new versions for many image files and needing to update one or more albums to the new versions. This does not cover every need, which is likely impossible, but my hope is that it will help reduce the need to change one file at a time.
Select one or more albums and then select one of the processing options:
• Replace all with newest version only
All albums are updated to have only the newest file versions.
• Replace all versions with newest version
All file versions are replaced with only the newest version.
The original file, if present, is NOT replaced.
• Add newest versions to existing versions
The newest version is added to existing versions, if missing.
• Replace all with original and all versions
All files are replaced with the original file and all versions.
• Replace all with original version and newest version
All files are replaced with the original file and newest version.
• Replace all with selected versions (*)
All files are replaced with the selected versions only.
This includes the original (unversioned) file.
• Replace all versions with selected versions (*)
All file versions are replaced with the selected versions only.
The original file, if present, is NOT replaced.
• Add selected versions to existing versions (*)
The selected version is added to existing versions, if missing.
• Replace all with original and selected versions (*)
All files are replaced with original files and selected versions.
(*) The four options using selected files: the list of selected files is from the function {SELECT FILES}. Album files that do not match any selected files are left in the album. Only files that match a selected file are changed according to the above rules. The matching is based on the file name without version or extension: 'filename.png' and 'filename.v01.jpg' are matches.
Example: Replace all versions with selected versions: If the album has filename.jpg and filename.v02.png, and the selected files list contains filename.v04.jpg, the result in the updated album will be: filename.jpg and filename.v04.jpg
TOPIC: GALLERY TO ALBUM
Save the current thumbnail gallery as an album. Select an existing album name [Browse], or input a new name, then press [OK].
TOPIC: SLIDE SHOW
+image: slide-show.jpg
Use the Manage Albums function to assemble the images for a slide show as an album with an assigned name. In the slide show dialog (top left), press [Select Album] and choose an album from the list provided.
Change the other settings in the dialog as desired, then press the [Start] button to start the slide show with the first image in the album, or [Resume] to resume a paused slide show from the current image, or another image selected by clicking its thumbnail.
Use the escape key to exit the slide show and return to the dialog.
The animated transitions between images, and the display times and zoom behavior of individual images, can be customized using the dialogs explained below.
Main Dialog Controls
• Caption Time
The default time to display title and description, in seconds.
• Image Time
The default time to show the image alone, seconds.
• Clip Limit %
Images are scaled to fit window, with margins for different
aspect ratio. If difference < clip, crop for no margins.
• Music File
Music file to play during the slide show (VLC required).
• Full Screen
If checked, images are shown full-screen without menu etc.
• Auto-replay
If checked, the slide show will start over after the end.
• Random Image
If checked, use random order. Otherwise album order.
Keyboard keys can be used to control the slide show. Press [KB controls] to show or change current assignments (Keyboard Preferences, bottom right).
The following actions can be assigned:
• Blank image and pause the slide show, or restore image (toggle).
Default 'B'.
• Show next image, including transition, in a paused slide show.
Default 'N'.
• Pause or resume the slide show (toggle).
Default 'P'.
• Magnify the image - simulated loupe (see {MAGNIFY IMAGE}).
Default 'X'.
The following KB keys are assigned to actions that cannot be changed:
• Escape: interrupt the slide show and return to the main dialog.
• Left / right arrow keys: You can go back and forward at any time and
the slide show will continue from there.
You can configure keys other than P/B/N/X if desired, and space bar (blank) can also be used. Do this by replacing the key name in the dialog.
Press [transitions] to start a dialog (Transition Preferences, bottom left) to select and customize the transitions between images. These include instant replacement, fade-out/fade-in, and many animated methods of image replacement (e.g. the new image expands from the center to replace the old image). Select the transitions to be used and whether they are used randomly or in sequence. The time parameter sets the duration of the transition. Times less than 2 seconds may cause problems with slow computers or large monitors. If you see fleeting gaps in the image, you need to increase the time. The preference parameters specify a relative preference which will influence how frequently the transition is used when random sequence is selected.
The buttons [load] and [save] allow you to save transition settings in a file and load them later. These files are independent of the slide show files. A slide show will default to the transition settings last used for that slide show (album name), but you can always replace these by using the [load] button to load some other settings, or changing them in the dialog.
Press [image files] to start a dialog for Image Preferences (top right). These are optional. An image is selected for customizing by clicking its thumbnail in the album/gallery display. The dialog is filled-in with default settings or the previous settings for this image in this slide show. Enter revisions and press [done], or click on the next image to be customized.
^Preference:^ If random image sequence is chosen, this number gives a relative preference for the image. The neutral value is 10. Enter a new value to increase or decrease the probability that this file is chosen in the random sequence of images. A value of 20 would double its frequency of choice, a value of 5 would halve the frequency. The max. value of 99 would make the probability almost 10x. A value of zero would prevent the image from being shown. This probability is moderated by logic to prevent the same image from being shown again shortly after it was shown before. The image is inhibited for a count of 1/3 the images in the album, or 10, whichever is smaller.
The dialog shows the customizable image events in time order:
• play an optional tone when the image appears
• wait for a specified time (may be zero)
• show the following text items in parallel:
• image name (file base name) for specified time
• image title, if any, for a specified time
• image description, if any, for a specified time
• wait a specified time before starting an image zoom (may be zero)
• zoom the image from normal to magnified or the reverse, over the
specified time. If neither option is selected, there is no zoom.
• zoom-in: start at normal size, magnify the image while moving
the center to the specified position
• zoom-out: start at magnified size at the specified center,
shrink the image back to normal size
• [zoom center] - press this button, then click on the image
thumbnail to specify the zoom center for the image
• wait for a specified time after zoom (may be zero)
(the default value is the main dialog 'image time' setting)
• transition to the next image, using the specified transition
or 'next' to indicate no preference (randomly selected).
TOPIC: MAPS MENU
+image: ug-maps.png
TOPIC: WORLD MAP
+image: map-click.jpg
This is an internet world map that can be scaled (zoomed in and out) from street level to contenent level. The map has markers (red dots) corresponding to images having geocoordinates in their metadata. Click on a marker to get a Gallery View of all the images at this location. Images located within the marker area on the map are selected. The effective marker area scales with the map scale. Zoom-in to expand the scale and possibly separate one marker into multiple nearby markers. Use the mouse wheel or left/right clicks to zoom the map in/out. Drag the map to change the center.
TOPIC: MAP REGIONS
+image: map-regions.png
You can save a map region (map center and zoom level) with a given name and recall the map region later with one click. To save a map region, navigate to the region and zoom-in to include what you want within the window. Enter the map region name and press the [Add] button. The new region is added to the list of available regions in the window. To recall a saved map region, simply click on the region name in the list. To delete a map region, click on the name and press the [Delete] button. A few map regions are present by default. You can keep or delete them.
TOPIC: MAP LOCATION
+image: map-location.png +image: map-location2.png
Input a location name (city/location and/or country) or a few leading characters, press [OK]. A picklist with matching locations will appear. Choose a location. The map will move to that location and zoom-in. If there are too many matches for the given input, add more characters to narrow the search.
TOPIC: MAP MARKERS
Here you may choose to show markers for all images, or only images in the current gallery. You can use the latter capability to show markers for a chosen subset of images. Use an album, or use the Search function to produce the desired set of images into a gallery.
TOPIC: SHOW ON MAP
Change to Map View and show the location of the current image. If the map area has been seen before and is now cached, the reponse time is instant. Otherwise there may be an internet delay.
TOPIC: CUSTOM MENU
+image: ug-custom.png
+image: custom-menu.png
This enables you to collect frequently used functions from multiple menus into a single custom menu. You can also add entries to open specific image files or albums. The menu also includes script functions and plugin functions (see below).
The last entry in the menu, Edit Menu, opens a text editor for editing the menu list itself. The menu names must exactly match the names in the Fotocx menus, but case is not significant. Custom notes and tool tips can be added by using the '#' character.
Menu entries can take the following formats:
# comment a comment that does nothing
menuname # comment fotocx menu name and optional tool tip
file filename open a file (e.g. $HOME/pictures/somefile.jpg)
album albumname open named album (gallery)
The following entries are present by default and you should not change or remove them:
Edit Script see below
Run Script see below
Batch Script see below
Plugins see below
Edit Menu edit this menu
TOPIC: SCRIPT FILES
Menu Functions:
• Edit Script - Perform a set of edits on one image file, recording
all functions and settings in a named script file.
• Run Script - Run a script file using the current image file,
like an edit function.
• Batch Script - Select any number of image files and run a script
file on all of them, in batch mode.
Script files allow you to define a set of edits once, and repeat them on single or multiple image files at a later time. This can be useful when many photos of the same subject were made under the same lighting. You can choose one photo and edit it to perfection, recording every function used and adjustment made in the dialogs. Then you can apply these edits to the entire batch of photos. Certainly this will not be as good as editing each photo individually, but it is much faster, and you can always go back and make additional adjustments after viewing the results.
^Scriptable Edit Functions
Some edit functions use mouse drags on the image, e.g. all warping functions. These are not scriptable because mouse drags are not recorded. If you try to use one of these while building the script, you are told this is not possible.
The following functions are currently scriptable:
Edit
Retouch brightness/contrast/color adjustments
Rescale change the pixel dimensions of an image
Margins add margins to image
Color Mode convert to black/white or color negative
Area Fill fill selected or transparent areas with color
Repair
Sharpen sharpen fuzzy edges
Denoise reduce image noise
Defog remove fog/haze from an image
JPEG Artifacts suppress JPEG artifacts (compressed image)
Anti-Alias reduce pixelation of upscaled images
Adjust RGB adjust colors using RGB or CMY sliders
Refine
Edit Histogram edit the brightness histogram
Flatten Histogram flatten the brightness histogram
Local Contrast add contrast based on area brightness
Amplify Contrast amplify existing contrast to enhance details
Global Retinex increase color and contrast globally
Local Retinex increase color and contrast locally
Saturation adjust saturation based on brightness
Soft Focus produce a mixed sharp and blurred image
Brightness Ramp ramp brightness or color across an image
Effects
Outlines convert image into an outline drawing
Sketch convert image into a simulated sketch
Cartoon convert image into a cartoon
Emboss add a 3D relief effect to an image
Tiles1 convert image into square tiles
Tiles2 convert into irregular matching tiles
Painting convert image into a simulated painting
Texture add texture to an image
Pattern add pattern to an image
Dither convert image into dots
Engrave convert image into black & white lines
Set Colors set no. colors used for each RGB color
Shift Colors tune colors using a slider
Custom Kernel apply a custom convolution kernel
TOPIC: EDIT SCRIPT
In the dialog, press [start]. Choose a file name for the script. Begin editing the current image file. Use all desired edit functions in any sequence. Each edit is recorded in the script file along with all the dialog settings used. When finished, press [close] to close the script file and save it with the given file name.
TOPIC: RUN SCRIPT
Choose one of your saved script files from the popup menu. The script is executed using the current image file, like a normal edit function.
TOPIC: BATCH SCRIPT
In the dialog, press [Select Files]. Select the files to edit using the standard file selection dialog ({SELECT IMAGE FILES}). When done, press [Select Script]. Choose a script file from the popup menu. The script is now executed on all of the chosen files. All modified images are saved as new versions, so the original files are not lost. Those you do not want can be quickly removed using {BATCH DELETE/TRASH}. If RAW files are processed, the corresponding outputs are TIFF-16 files.
TOPIC: PLUGINS
+image: plugins.png +image: plugins-edit.jpg
Plugin functions are a way to use other image editors within Fotocx. You can use the image and collection management functions of Fotocx with other programs that also do edits, e.g. Gimp. You can use a RAW image editor like Rawtherapee and then perform additional edits using Fotocx.
The usage procedure is:
1. Open the file to be processed in Fotocx (the current file).
2. Start the plugins menu and select desired program, e.g. Gimp
3. The plugin program starts and opens the file passed from Fotocx
4. Perform the desired edits using the plugin program
5. When done, save the output file with the same name as the
input file (fotocx-plugin-file). The file .ext can change,
e.g. .jpg --> .tiff. The parent folder should not change.
6. Close the plugin program.
7. Fotocx opens the plugin output file as an edited version
of the current file. The file .ext may have changed.
8. Perform additional edits, or save the edited file as a
new version or new file.
An example Plugins menu is on the left. The top entry "Edit Plugins" starts the text edit application on the right. Use the text editor to define the plugin menu names and the commands to start the corresponding plugin programs. The format is:
menuname = plugin-command %s
TIP = explanation of above command
The 'plugin-command' is the shell command for the plugin function, and '%s' is where the current file name is inserted into the command. Do not put quotes around the '%s' because this is added automatically, allowing file names with blanks or other special characters to be processed. The top example shown is a menu named "Gimp" which starts the command "gimp %s". The TIP text is optional. If present, it is on the next line following the menu name. Hovering the mouse over the menu entry will show this text next to the menu text.
Some commands may expect both input and output files to be specified. In this case supply '%s' in both positions. The output file will replace the input, but this is not a problem because an intermediate file name is used.
You may omit '%s' if the command does not process an image file.
^Select Area
If the input file has a selected area, the plugin function will only be done on the selected area. Within the plugin window, the entire image will be edited, but when the output is returned to Fotocx, unselected areas are restored to the original state.
TOPIC: ZOOM
+image: ug-zoom.png
^Zoom Button
Left or right-click the button to increase or decrease the image size in {FILE VIEW} or thumbnail size in {GALLERY VIEW}. This applies only if the gallery view mode is {THUMB VIEW}. If {META VIEW}, nothing is done.
TOPIC: FILE SAVE
+image: file-save.png
+image: file-save-as.png
In the first dialog, select 'new version', 'new file', or 'replace file'.
^New Version
Save the current image file with a new version number. File names with version numbers are formatted "filename.vNN.ext" where NN is a number 01 to 99. The 4 characters ".vNN" are inserted between the file name and extension. If the file name has no versions, version .v01 will be created. If file versions are already present on disk, then the next higher version number is used. If the file is a JPEG file, the default quality is used (see {SETTINGS}). A keyboard shortcut can be assigned to this function if desired.
^New File
The 2nd dialog shown above will open to save the current image to a selected file, which can be the original file, another existing file, or a new file. An edited image file can be saved in formats JPEG, PNG and TIFF. JPEG is normally the best option, since these are compressed to reduce space. You can choose a JPEG quality value in the range 1-100. Lower values give smaller files and less image quality. Values above 70 are hard to distinguish from 100 (highest quality, largest file size). PNG files are compressed without any loss of quality and are larger than JPEG files of the highest quality. TIFF files are compressed and larger than JPEG or PNG. TIFF and PNG files may be saved with 8 or 16 bits per color. The 16-bit formats only makes sense for files converted from a RAW format having more than 8 bits per color. It is rare that the difference between 8 and 16 bits per color can be seen with the eye. However, an image with greater bits per color has more latitude if an edit function radically alters the brightness histogram. PNG-16 files are smaller than TIFF-16 but slower to save due to the slow compression process. Saving a file as TIFF or PNG can be quite slow for a large image and a slow computer. If an image has transparent areas (e.g. a Warp function creates a non-rectangular image shape with transparent margins), you should save the image as a PNG file if you want the transparent areas to be preserved. If you use JPEG, these areas will be black and opaque. JPEG does not support transparency.
^Replace File
Save the current image file back to itself. If a JPEG file, the default quality is used (this value can be set in {SETTINGS}).
If 'make current' is checked, the saved file (new file name) will become the current file. The source file (old file name) remains unchanged. If not checked, the file is saved with the new name, but the current file remains the source file (old name). In either case, the edit history is retained (Undo and Redo will still work).
The default JPEG quality is used unless you change the value in the New File dialog. The default value can be set in {SETTINGS} (initially 90). You will not be able to see a difference between a file saved with quality 90 and one with 100, but the difference in file space is huge. The {TECHNICAL TOPICS} section describes potential loss of image quality from repeated open, edit and save of JPEG images. At the default quality of 90 this issue can be generally ignored.
The ^permissions^ used for the new file are shown. These are copied from the source file that was copied or edited to make the current file. If you want different permissions, press the [Change] button to edit the permissions.
^Rough guidlines for file size and save time
These numbers are based on a 30 megapixel image with lots of color and detail,
and my own strong computer.
^file type characteristics file size save time
jpeg 100 quality level 15 MB 1 second
jpeg 90 6.7 1
jpeg 70 3.4 1
jpeg 50 2.5 1
png-8 8 bits/color 45 10
png-16 16 72 15
tiff-8 8 bits/color 88 1
tiff-16 16 176 1
TOPIC: METADATA MENU
+image: ug-metadata.png
Metadata is text data that is stored inside an image file. Digital cameras create some metadata automatically, such as date and time, technical data about the camera and photo parameters, and location data (if the camera has a GPS receiver). Other data can be added by the user, e.g. a title, description, rating, and tags (search categories).
Fotocx can search your image collection using any metadata, along with folder and file names or partial names, producing a gallery of matching images. In most cases, the search is almost instantaneous. There are several alternatives for organizing a large image collection so that it can be easily searched. It would be good to review these before choosing an organization system for file and folder names and metadata tags, titles, ratings, etc. See {ORGANIZING IMAGES}.
Metadata standards are chaotic. Please review this issue in the topic {BATCH MOVE META} before making decisions about which metadata keys to use for your image collection.
TOPIC: VIEW MAIN META
TOPIC: VIEW ALL META
+image: view-metadata.jpg
The View Main Meta functions displays commonly useful metadata for the current image file. This includes the date and time of a photo, shutter speed, focal length, image size, ISO, etc. Digital cameras store this data in the image. Metadata may also contain data added by a user: keywords or tags, title or caption, description, comments added by the photographer or later editor (sometimes found in published images).
If an image is edited and then saved, the metadata is updated and stored with the new image. View Main Meta shows the history of edits that have been made.
View All Meta reports all available metadata, and can be over 100 items you likely don't care about.
The [Extras] button on the View Main Meta window opens the dialog shown on the right, where you can add extra items to the report. Any item available in the View All Meta report can be added to the short report. Click an item in the left column to add it to the right column and to the report. Click an item in the right column to remove it. Click the entry "Other Item ..." to type-in any item name not contained in the default list, which is limited to the most likely needed items.
Fotocx uses these metadata items (keys) for image editing and searching:
Title short title of image
Description description of image
Date/Time Original photo date/time - normally from camera
Rating image rating - 0 to 5 stars
Geotags image location - may be from camera GPS
Tags image tags (identifiers from user, for searching)
These items are edited using the function {EDIT MAIN META}
There are also several batch functions for adding data into many image files at once. These are found in the {BATCH MENU}.
TOPIC: METADATA STANDARDS CHAOS
Metadata standards are chaotic. Multiple standards bodies and corporations (e.g. Adobe, Nikon) have developed multiple overlapping/conflicting standards over the decades. For example, the title of an image can be found in one or more of the keys 'title', 'subject', or 'headline'. The author or photographer may be found in 'artist', 'by-line', 'creator', 'author', or 'photographer' (not a standard but often present). The content description may be found in 'description', 'imagedescription', 'comment', 'usercomment', or 'caption'.
Fotocx uses the following metadata for editing, displaying, and searching image files: 'creator', 'description', and 'title'. This choice was based on frequency of use in a large sample of images. Likely you have image files using different metadata keys. You can copy these other keys into the ones used by Fotocx. For single files, use {VIEW MAIN META} to show all available data in all keys, and {EDIT MAIN META} to copy data into the keys used by Fotocx. Add all redundant keys to the 'extras' list in {VIEW MAIN META}, so you can see them. Run both {VIEW MAIN META} and {EDIT MAIN META} together while viewing images to be fixed. Copy and paste data from {VIEW MAIN META} into {EDIT MAIN META}. Both functions update as you move to other images. ^Better:^ You can process selected image files, or all files, using {BATCH MOVE META} to consolidate metadata into the preferred keys.
TOPIC: TAGS OVERVIEW
Image files can have identification or classification tags (keywords, labels) assigned to them. These can be used to search a large image collection for those images having desired tags. Typical tags: the main subject of a photo, the associated event, the location, the persons or things contained, etc. Tags reside inside the image metadata (IPTC keywords). Tags are normally one word, but a short phrase with embedded blanks or other delimiters can be used. Commas and semicolons are used as delimiters between tags, and therefore cannot be used within a tag (a standard, external to Fotocx). A compound tag like "arizona scenery" is allowed, but you should use two tags instead for more flexibility: you can search for images having either tag or both tags.
Regardless of the physical organization of your images (folder and file names), tags can be used to create other organizations. All images having a desired tag or tags can be found quickly and displayed in a gallery window, where you can further review the images and choose those for viewing, editing, or changing their tags. If you have used folder and file names in a meaningful way, you can search for images using these names as well as tags. You can also search images by date, rating, location, and other metadata items. These need not be duplicated in tags. See {SEARCH IMAGES} below.
^Managed Tag System
This is appropriate if you are starting from near nothing and are able to plan your tag system before adding tags to your images. In this system, you create a limited number of tag categories (e.g. people, places, things, events, art, scenery ...). You then plan the tags or types of tags that will go into each category. Tags are created and assigned to a category as needed during the process of tagging images. An image is tagged by pointing and clicking on the list of available tags, which is organized by category and alphabetically within category. If a new tag is needed, it is created when first assigned to an image. The number of tags within a category should ideally be less than about 200, so that visual location from a pick-list is fast enough. The pick-list is sorted alphabetically.
managed tag system advantages
• prevent inconsistent tag names (e.g. 'landscape' and 'scenery')
• prevent alternate spellings and typos (e.g. 'susan', 'susy')
• prevent tags that include other tags (e.g. 'landscape', 'lake')
(can be planned and deliberate, but should not be by accident)
• searching is more reliable because tags do not have above errors
• when tagging images, you have an overview of available tags
(as opposed to thousands of tags in an unmanaged system)
A large tag list slows down the process of tagging images due to the time needed to visually find a tag in a long list in a scrolled window. This is mitigated in 3 ways: (1) Up to about 10 most recently used tags are shown in the edit dialog, where they can be easily seen and chosen. Since a series of photos made at the same time will likely share many tags, adding tags to such a series is made easier and faster. (2) When adding tags to an image, you may simply start typing a desired tag name. A popup list of matching tags appears as soon as there are only a few possible matches. You can then click on the desired tag to add it to the image. If there are no matching tags, you have the option of adding the new tag to the list of available tags. (3) You can limit the list of displayed tags to a chosen category.
If tags are broadly defined and fewer in number, search results for tags will be larger, but using the search results (image gallery window) to find a smaller subset of images can be quite fast. Physical file organization is preserved: image files located together in their folders will also appear together in search results.
Images downloaded from the internet often contain tags. These of course have no organization and are collectively chaotic. If you use a managed tag system, it is best to review such images and clean up the tags to conform with your system, or delete them. Whatever new tags are present will be automatically added under the category "nocatg". If you notice unwanted tags in your tag list, use {SEARCH IMAGES} by tag to find the images with unwanted tags so they can be fixed or removed.
^Random Tag System
You may prefer to invent tags as needed with no particular system in mind. Or you may already have thousands of tags, making a conversion to a managed tag system difficult (but not impossible: Fotocx has a function to mass convert tag names). In this case, you can simply type tags into your images, creating new tags as needed. There is still some capability to keep tags organized: existing tags matching the characters you input are shown as soon as there are only a few possible matches. Example: you type "new" and a list of tags is shown: New York, Newman ... If one of these is your intention, you click on it to select the tag. If not, you keep on typing and eventually press Enter to create a new tag. When searching images for tags, you can type desired tag names or pick them from the list of available tags. Available tags matching the first few letters you type are shown, and you can pick from this list. You cannot enter a search tag that does not exist somewhere in your images.
^Geotags
Modern cameras can record the location of each photo, using an internal GPS receiver. Latitude, longitude, city or location, and country are recorded in the EXIF metadata of the image JPEG or RAW file. The {EDIT MAIN META} function also allows location data to be entered or revised. Locations may also be specified by clicking on a map. There are three functions that can find images for a specified location or region:
{SEARCH IMAGES}
Search by location name (also multiple names, partial matches).
{PLACES/DATES}
Search by country, country/location, or country/location/date group.
Images by Map Location:
Click on a map marker to show all images at the marker location.
Location names (city or other place name, and country) from the camera GPS are not standardized and may be chaotic (e.g. Munich, München, MONACO). How to deal with this is discussed below.
TOPIC: EDIT MAIN META
+image: edit-meta.jpg
The Edit Main Meta function is used to add basic metadata to an image. Please read Tags Overview and Geotags Overview (above) before using Edit Main Meta.
Edit Main Meta is used to edit the most frequently used metadata: image date and time, rating, title, description, location data, and tags. The dialog initially shows data for the current image. After making additions or changes, press [Apply] to update the image file. There is no automatic file versioning for metadata changes, but can use File Save > New Version if wanted.
The dialog shows the metadata for the current image in File View, or for a clicked thumbnail in Gallery View. The dialog updates itself when a new image is opened or new thumbnail is clicked.
The date of the image, if available, is shown as Image Date. This may be entered if missing, or changed. You can enter a full date in the format yyyy-mm-dd or a shorter format yyyy or yyyy-mm. A missing month/day is logically equivalent to 01/01 when compared with a low limit for searching, or 12/31 when compared with a high limit. The [Prev] button fills-in the date from the previous data entered. This is to allow easy dating of a series of images. If time is important, you can include a time using format hh:mm[.ss].
You may enter a title, description, and a rating (0-5 stars) for the image. To edit the title or description, press the corresponding [edit] button. This will pop-up a text editor with a large limit on the size of the text.
Existing tags are shown in Image Tags. Available tags are shown in the Defined Tags window below. One of these tags can be added to the image by clicking it. A tag can be deleted from the image by clicking it in Image Tags. Recently added tags are shown in Recent Tags. This is a convenience to make adding tags to a new batch of images easier, since many of the same tags will be used again. Point and click the same way.
If the list of defined tags is long, it may be easier to type the desired tag into Enter Tag. Existing tags matching what you have typed so far appear in Matching Tags, and you can click on one of these to add the tag to the image. If the input tag is new (no matching tag is shown), press [add new tag] when the tag is complete. It will be added to the image and to the list of defined tags with category "nocatg".
If you are using tag categories, you can select a category, and only those tags will be shown in the list of defined tags. If your tags list is huge, this can reduce the list to a manageable size for pointing and clicking.
The [Apply] button writes the data to the image file and to the metadata index file used for searching images.
The [Prev] button (at the dialog bottom) can be used to load all available data from the previous image viewed or edited. This can be used to speed-up the processing of a group of images sharing much of the same data.
^Adding Geotags
There are several ways to add location names and geocoordinates in the {EDIT MAIN META} dialog.
Camera GPS
Your camera GPS sensor may have inserted location data, possibly incomplete. The language may not be the one you want, or all-capital letters may be used, or some other nonsense. Use the [clear] button to start over, or just re-enter the text needing revision.
[Prev] Button
If the image being edited has the same location data as the previously edited image, press [Prev] to fill the location data used before.
[Find] Button
To use a location aleady present in other image files, enter a few leading characters into Location and press [Find]. A pick-list of matching location names will pop-up. Choose one. Data for this location will be inserted. If there are multiple geocoordinates present for the same location name, the internet world map will appear showing multiple red dots. Click the red dot for the location you want.
[Lookup] Button
Fotocx comes with a file of over 40K known locations (worldcities.txt). One of these may be the one you need. Enter a few characters and press [Lookup]. A pick-list of matching names will pop-up. Choose one. Data for this location will be inserted.
Click Map Location
Use the Maps menu to open up the internet world map. Zoom-in on the location you want, and left-click with the mouse. If you click on one of the red dots marking your image locations, data from this location will be inserted. If you click on some other location, the latitude/longitude will be inserted. If the location is within 10 km of a known location (worldcities.txt), the locatioin name and country will also be inserted. Edit the text manually if correction is necessary.
Batch Geotags
You can use {BATCH GEOTAGS} to add location data to many image files at once.
TOPIC: EDIT ANY META
+image: edit-any-metadata.png
This is a dialog for editing any metadata for the current image file. The most common keys for editing are listed on the left. Press the [Full List] button to get a list of all available keys for the current image file (there may be hundreds of them). Press [Short List] to go back to the common keys list. Click an item in the list to retrieve the current key value. Change the value if wanted and press [update]. The metadata is updated. To edit a key name not in the list, enter the key name and press [fetch] to retrieve the present value, if any. Then enter or change the value and press [update]. To delete a key, press [delete]. You may enter the key name in lower case and with or without spaces, e.g. "Subject Distance" and "subjectdistance" will both work. Some keys cannot be changed, e.g. 'image width' is the image pixel width, which can only be changed by changing the image size. The source for the short list is the text file "metadata_picklist" in the Fotocx home folder (/home/<user>/.fotocx). You can add or remove items from this list.
TOPIC: DELETE META
Specify the key name to delete, or select All. The metadata is deleted. Use All to clean an image of any identifying information that may be present. Some keys are not deletable, e.g. File Name.
TOPIC: COPY META
Combined images created with Fotocx (HDR, panorama, mashup ...) will not contain metadata by default. Use this function to copy metadata from one of the input images, or any other image. Use the [Browse] buttons to choose a file to source the metadata and a file to receive the metadata ("target file" in the dialog).
TOPIC: FIX META
The metadata of the current image file is repaired. Use this function if you have an image file that produces an error message when you try to edit the metadata. It will delete malformed (illegal) metadata and keep the rest. This may fix the problem. You could also save the image file as a new version, which will keep the original file and remove the offending metadata from the new version.
TOPIC: MANAGE TAGS
+image: manage-tags.png
Create tags (keywords) and optionally group them into categories. You can assign categories to tags to help organize them and locate them more quickly when adding tags to images. They are optional and they play no role in tag searching: only the tag is stored in an image, not its category. Typical categories are people, places, things, events, scenery, buildings, art, etc. To add a new tag with a new category, enter the category and the tag, then click [create]. If the category is blank, the tag will be assigned to "nocatg". To assign a tag to a different category, click a category (bold text) or enter a new one, click the tag, and press [create]. The tag will move from the old to the new category. To delete a tag, click the tag and press [delete]. Tags used in images but not assigned to a category will appear under "nocatg". A Category with no tags assigned can be deleted - click the category, clear the tag name if present, press [delete].
Note: a newly created tag is appended to the end of the tag list for its category. The next time Fotocx is started, all categories and their tag lists are sorted alphabetically, except that "nocatg" is always last.
TOPIC: CAPTIONS
+image: choose-captions.png
^Choose Captions menu
Choose which metadata items to use for text captions displayed in the top left corner of the image in file-view mode. Subsequent image views will include all chosen items available in the image metadata. See {SETTINGS} for how to control line wrapping.
^Toggle Captions menu
Toggle the display of captions ON or OFF. Assign a keyboard shortcut to quickly enable or disable captions display.
TOPIC: PLACES/DATES
+image: image-locations.jpg
This is a fast way to find all photos made at a given location or location and date range. In the dialog, choose from the two options: include all images in the report, or include only images found by the previous Search function. Then select the desired grouping level: by country, by country and location, by country and location and date, or by date and country and location. In the last two cases, you can select a date range for grouping of images having nearby dates. A number N will group images together with dates that are N days or less apart.
A popup report shows all locations found and the dates of photos taken in those locations. The count of photos taken is also shown. In the above example, 29 photos are from Grindelwald in March 2008. Click on a line in the report to get a thumbnail gallery of those images, and from there you can click on any image to view or edit. Note that this method uses only location and country to find the images. Earth coordinates are not used. If you have images with missing or inconsistent earth coordinates for a given location, use this function to get all of them, and then use {BATCH GEOTAGS} to make the earth coordinates consistent.
You can also use the keyboard up/down arrow keys to rapidly step through the report lines and view the gallery for each line. The page up/down keys and the home/end keys also work. Use the [find] button to enter a name and jump directly to that name in the report.
TOPIC: TIMELINE
+image: timeline-report.jpg
This report produces a timeline of image counts by month. Choose from the two options: include all images in the report, or include only images found by the previous Search function. Click on a year and month in the resulting report to get a thumbnail gallery of all images with a photo date (EXIF) in the selected month. The example above shows 377 images for May 2016. You can also use the keyboard arrow keys (up/down/left/right) to step quickly through the months or years and view the corresponding galleries. Year 'null' is for images without a photo date.
TOPIC: AUTOSEARCH
This function can be used by shell script files to extract image files meeting any of the selection criteria available when using the Search Images function (see below). First, use the Search Images function to set desired selection criteria (e.g. folder/file names (wildcards allowed), dates, tags, or other metadata). Use the [save] button to save the criteria as a file with a given name. Use the following command to start Fotocx and perform the search: $ fotocx -m autosearch <settings_file> where <settings_file> contains your search criteria. The output goes into the file <fotocx home>/search_results, where <fotocx home> is the Fotocx home folder (default: /home/<user>/.fotocx/). The settings file is an ordinary text file which can be hand-edited or created using a shell script.
TOPIC: SEARCH IMAGES
Use the Search Images function to find images having any desired metadata (date, tags, location ...). A metadata index file is used for searching, which makes it possible to search thousands of images per second. The index contains a subset of the EXIF and IPTC metadata in the image files. Some of this data is automatic, created by the camera. Other data, such as tags and star ratings, can be added by the user.
There are two report formats: a gallery of thumbnails showing all images that match the search criteria, or a metadata report which combines thumbnails with metadata text. Here is an example of the metadata report format:
+image: search-images-metadata.jpg
^Search Dialog
+image: search-images.jpg
In the dialog, select which images to search, either all (all images) or the current set, meaning the images in the current gallery list, which can be a folder, album, or the results of a prevous image search. Next, choose what to do with the matching images found: 'new set' means replace the current set with the images found, 'add' means add them to the current set (gallery), and 'remove' means remove them from the current set. To remove images, you must search the current set.
For files matching the select criteria, you may additionally specify which versions are selected: last version only, original + last version, original + all versions, or no change. 'no change' ignores file versions and selects all files meeting selection criteria - originals and/or versions. Thus you can get multiple versions of the same file in the output report. The version options depend on the Fotocx naming convention: The original file name is normally filename.ext. Edited versions are filename.v01.ext, filename.v02.ext, etc. When one of the 'version' options is selected, then each file selected for reporting is replaced by the version or versions specified. Therefore it is possible, for example, that if only version 2 matches the selection criteria, the resulting report includes only version 3, if that is the last version, and if 'last version only' was specified.
Select the desired report type. The gallery report is a page of thumbnail images, as long as needed to hold all the images that match the search criteria. The metadata report has both thumbnail images and a list of metadata items beside each thumbnail. These include the standard items (date, rating, tags, geotags, title, description) and any other metadata keys you added in the "Keyname" selection list.
Enter your search criteria. Select desired tags, dates, star ratings, words contained in text (image title, description), file or folder names, and location names. See more details below.
Press the [proceed] button to perform the search. The output is a standard gallery of thumbnails, or the metadata report format shown above. Choose images to view or edit by clicking the thumbnails. Navigate this set of searched images like any other gallery. You can save the searched images as a permanent album, which can be further edited to add or remove images (see {MANAGE ALBUMS}).
Available tags are shown in Defined Tags and can be chosen with point and click. If the list of defined tags is long, it may be easier to type a tag into 'enter tag'. Existing tags matching what was typed so far will appear in the 'matches' list, and you can click one of these to add the tag to the search list. If you type a tag with no match (it does not exist in any image), the list of matching tags will be empty.
If you are using tag categories, you can select a category, and only those tags will be shown in the list of defined tags. If your tags list is huge, this can reduce the list to a manageable size for pointing and clicking.
A date range may be entered to restrict the search to images within the date range. Choose photo date (EXIF from camera) or file date (creation or last modification date). The format is yyyy-mm-dd. Images are selected which have a date on or after the first date, if present, and on or before the second date, if present. Missing month/day default to 01/01 for the low date limit and to 12/31 for the high limit. Times may optionally be specified using the format yyyy-mm-dd hh:mm. Missing times default to 00:00 and 23:59.
To search for images having no EXIF photo date (e.g. scanned images), use null" in the first date input.
A pair of star ratings may be entered to restrict the results to images having a rating within the given range. A missing low value implies 0 stars, and a missing high value means the highest rating, 5 stars.
Folder and file names may be searched. In the field search files, enter any number of names used for your image folders and file names, separated by blanks. An input of "egypt cairo" would match all image folder or file names containing either of these strings. Substrings will also match. If a '*' is present in a search name, the matching is based on wildcards, where '*' matches any string, including a null string. Therefore "*2017*paris*" will match any file containing "2017" and "paris" or "Paris" in that order. Keep in mind that the file name being matched is the entire pathname. Another example: "*2017*/" would match any file with "2017" in any parent folder, but "2017" in a file base name would not match.
Image title and description may be searched. Enter the words to search for in the dialog search text field, separated by blanks. These will be matched to every word in the title and description of all images, and matching images are selected. Case does not matter. Search words may also have wildcards, e.g. 'veni*' matches both 'Venice' and 'Venizia'.
To search locations, enter one or more city/location or country names in the search locations field. Only image files with geotags matching one of the entered locations will be selected. A location may be a city, park or other geographical name (whatever is stored in metadata 'City' and 'Country' fields). Matching is based on substrings. A search for "mon" will match "Monaco" and "Montreux". Use commas to separate multiple entries.
The radio buttons 'all' and 'any' apply to tags, text, file names, and locations. You can select images having ALL the entered strings, or ANY of the entered strings. Example: if the location search field is "new york" and "any" is selected, images from New Zealand and York, England would be included. If "all" is selected, only images located in New York would be included.
If you wish to find images with missing data, you can enter "null" as a match value.
^Search Additional Metadata
Using the dialog inputs 'keyname', 'condition', and 'match values' you can specify additional metadata items to use as select criteria, or to be added to the report output if the "metadata" report type is chosen. The items available for a given image file can be shown with {VIEW ALL META}. These include e.g. camera make and model, exposure time, F-number, ISO, metering mode, focal length, shooting mode, etc. Enter match criteria, if wanted, so that only images with matching metadata are reported. For example, if you enter "make" with the match value "nikon", then only images from a Nikon camera (any model) will be reported. The pick list comes from the text file <fotocx home>/metadata_picklist. You can add items to this file if wanted.
The matching logic can be selected for each metadata key.
^match method match value(s)
report select and report all values (also missing)
reportx select and report only images that have this key
matches one or more text values, separated by commas
contains select any metadata containing any given text value
number = single numeric value - select equal metadata values
number => single numeric value - select equal or greater values
number <= single numeric value - select less or equal values
^Wildcard matching
The 'matches' method allows the use of wildcards in the match criteria. An asterisk (*) can be used to match any sequence of characters, including zero characters. A question mark (?) can be used to match any single character. Example: "mar?*ony" would match "mark anthony" but would not match "marony". "mar*ony" would match both.
The [x] buttons on the right side can be used to clear single metadata search items.
^Dialog Buttons
[Load] and [Save] can be used to load or save search criteria from a file. [Clear] will clear all data in the dialog. [Proceed] will start the search process.
^Performance
Searching and reporting of indexed metadata is almost instantaneous. The speed for non-indexed metadata depends on computer and disk speed. A strong CPU with SSD disk can search over 1000 files per second. There is a separate topic which explains options for optimizing image searching: {ORGANIZING IMAGES}.
^search_results^ (album)
The output of Search Images is saved in the album "search_results". You may perform a search and then perform other functions which change the current gallery. If you need to refer to the previous search, this remains available in the album "search_results" until you do another seaarch. Rename this album if you want to keep a later search from replacing it.
Limitation: The search function is limited to 40,000 results (images found that meet the search criteria). If this limit is exceeded, you are notified and the search is truncated. This limit exists because the size of a scrolled window in GTK is limited, and an attempt to create a larger window may result in a crash or lock-up.
TOPIC: SELECT MENU
+image: ug-select.png
TOPIC: AREA OVERVIEW
Edit functions normally apply to the entire image, but it is possible to edit part of an image (an "area") and leave the rest unchanged. If an image area has been selected, then most edit functions will work only within this area. Some functions (e.g. Rescale) ignore a selected area. An area may be selected before starting an edit function, or while an edit function is active. The selected area is immediately active, prior edits are retained, and future edits will apply only within the area. If another edit is started, the selected area remains active, so it is possible to carry out a series of edits on one area.
Fotocx uses 'areas' instead of 'layers' as in Photoshop. Instead of selecting something from the image, making a separate layer from the selection, performing edit functions on the layer and finally merging the layers, you select something in the image and perform edit functions on the selection, with WYSIWYG feedback during the edit. Areas can also be saved to a file, loaded and pasted into other images, and edited there.
TOPIC: SELECT AREA
+image: select-area.jpg
The Select Area dialog starts with the menu Select > Select Area. Select one of the methods explained below. Each method selects image areas in a different way. You can change methods at any time, and the selected areas accumulate. An outline of the selected image area(s) is shown as you add or remove areas from the selection. The [Finish] button is used to map the image pixels within the area outlines, making them ready to apply subsequent edit functions. The [Hide] button hides the area outline, giving you better visibility of edits and possible area edge effects. Use the [Show] button to show the area outline. The [Clear] button removes all area selections. The select area dialog can be exited and re-started later to modify existing areas or add new ones.
^Methods
The following methods are used to enclose one or more image spaces that will belong to the final area. These methods may be used in any sequence to define spaces that are either joined or detached.
• Rectangle - drag to outline a rectangular area
• Ellipse - drag to outline a circular or elliptical area
• Freehand Draw - outline area by drawing with the mouse
• Follow Edge - outline by following image feature edges
• Select area within mouse - select all pixels within a circle
around the mouse. Drag the mouse to extend the selection.
• Select one color within mouse - works as above, but selects only
pixels matching a given color within a given match level (0-100%).
• Select all colors within mouse (flood) - select all pixels within
the mouse, extend the selection into adjacent areas with colors
matching the mouse colors (this is sometimes called 'flood').
The following paragraphs explain the details of each method.
^Rectangle
Drag the mouse from one corner to the opposite corner of a rectangular area to select. A rectangle is drawn to enclose the area. Right-click to delete and start over. Repeat the process to select more rectangular areas.
^Ellipse
This works the same as rectangle selection, except that the area enclosed is a circle or ellipse. The drag start location is the center of the resulting ellipse. The angle of the drag determines the shape of the ellipse.
^Freehand Draw
Drag the mouse (left button down) to draw a freehand line, or left-click to connect a straight line from the last point drawn to the point clicked. Continue around the target area until it is surrounded with connected curves and lines. Right click to remove previous lines (mistakes). A right click will remove the previous clicked or dragged line, up to 50 pixels. Right click repeatedly to remove more. A new clicked line will always connect to the end of the previous line. A new dragged line will connect to the previous line if it is started close to the end of that line. If it is started elsewhere, a disconnected line will be drawn. You can start a new drag from far away and draw back to meet the previous line. If a clicked line connects to an undesired point (you don't want to connect to the last line drawn), right click to erase it and then use drag to start a new sequence of lines. A right-button drag can be used to erase line segments: right-drag closely along a line to erase it, then left-drag to re-draw the line. At the end, an area must be fully enclosed, with no gaps. Lines that overlap a little at the ends are OK. Gaps can be difficult to find and correct, so work at 100% image size or greater and be careful. A series of lines automatically connected with left clicks will not leave gaps, but deviation from this sequence is likely to create gaps. To reduce the possibility of gaps, use deliberate overlaps when manually connecting lines. There is a gap detection utility described below - {FIND AREA GAP}. If an area edge is also an image edge, you do not have to draw this portion of the area. Draw the line off the image edge, and draw it back onto the image at another position along the image edge.
^Follow Edge
High-contrast pixels (likely image feature edges) between the last point drawn and a newly clicked position are found and connected. This is effective for clear edges that are not too irregular. Fuzzy and ragged edges may not work well and freehand draw will be needed if high precision is necessary. The rules for connecting lines are the same as explained above. Dragging the mouse instead of clicking works like freehand draw, but with a tendency to follow feature edges from a position slightly behind the mouse. For very irregular edges (hair, foliage), see Select/Deselect below.
^Mouse Radius and Color Match Level
These two controls apply only to the 'select within mouse' methods described below. Mouse radius defines the size of a circle around the mouse pointer. Pixels within the circle are selected, or they provide a set of colors for matching and selecting pixels. Match level defines a required match level (0-100%) to select pixels based on their color and brightness. 0 means anything matches, and 100 means a perfect match is required.
^Select area within mouse
Left click or drag will select the pixels enclosed by the mouse circle. A right click will unselect the last selection (repeat to unselect more). A right drag will unselect the enclosed pixels.
^Select one color within mouse
Click on the image to select a color. The color is shown on the color button. You can also use the button to set a color directly. Left/right drag to select/unselect pixels within the mouse circle that match the selected color within the match level. Adjust the match level down or up to match a greateror lesser range of colors. Click as needed on the image to change the color to be matched.
^Optional deselect color
This applies only to 'select one color' above. Shift + click on the image to set a deselect color. When the box is checked, the deselect color is active. If a pixel matches the deselect color better than the select color, the pixel is unselected. When selecting along a feature edge with a low color contrast compared to an adjacent area that should remain unselected, set the deselect color from the adjacent area. This is helpful for accurate selection of a complex edge, like hair or foliage.
^Select all colors within mouse^ (flood)
This is called 'flood' in some editors. Left/right drag to select/unselect pixels inside the mouse circle. Pixels beyond the mouse circle are also included if they meet these two conditions: 1) their color matches any color inside the mouse circle, within the current match level. 2) they are within the search range of the mouse pointer. This is a factor of mouse radius, e.g. if mouse radius is 20 and search range is 3, then the search range is 60 pixels from the mouse pointer. Drag the mouse over new areas you want to include. Watch the selected area expand into areas with colors matching those inside the mouse circle. If you go too far, right click to remove the last selection. Repeat if needed to remove more previous selections. Reduce the radius or increase the match level to gain finer control - the selection will expand more slowly and stay closer to the mouse circle. A small radius and high match level can be used to follow along an image feature edge and select pixels up to the edge with good precision. Change to a larger radius and/or lower match level to select larger areas after the fine work is complete, or use the select area within mouse method as described above. Right drag acts as an unselect: pixels inside the mouse circle and matching pixels within the search range are unselected. If a selection goes too far, it is often easier to correct this by unselecting from outside the selected area instead of selecting from inside the selected area. You may need some practice to get a feeling for this and be able to work efficiently.
^Select all colors within mouse - summary
• left drag select pixels in mouse and matching pixels in range
• right click undo previous selection, repeat to unselect more
• right drag unselect pixels in mouse and matching pixels in range
^Edge creep
An area that has been finished (see below) can be expanded or contracted in 1-pixel steps. This can be helpful to reduce edge effects when an area selected by matching colors is edited in a way that changes its brightness. Selection by color may leave a narrow band of underselected or overselected pixels along an edge where feature color transitions to background. Expanding or contracting the area 1-2 pixels can produce a cleaner looking edge. The area remains finished after creep.
^Area outline color
The color used for the mouse selection circle and the area outline can be changed at any time by clicking one of the color buttons. This allows good visibility against various background colors.
^Show/Hide
Use [Hide] to hide the area outlines. This is useful to better see the effects of the area edits without interference from the area outline. Use [Show] to show the outlines and resume editing the area.
^Finish
+image: select-area-finish.png
An area is not effective for edits until it is successfully finished. Finish validates drawn outlines and colors the enclosed pixels for visual checking. When you are finished outlining areas, use the [Finish] button to complete the process. The popup dialog shown above summarizes two methods you can use to finish.
Method 1: Left-click the mouse inside areas that were outlined by hand. The enclosed areas are temporarily colored so you can verify that the final result is what you intended. Any enclosed area can be selected, even those not explicitly outlined: if you have a donut with a hole, you can select the donut, the hole, or both. Press keep] when all areas have been clicked and correctly colored. If the outline of a hand-drawn area has a gap, the coloring process will "leak out" and areas outside the enclosure will be colored. In this case, press [Undo] in the Finish dialog, which restores the original area outline. Find the gap in the outline and close it, then try [Finish] again. A 1-pixel gap in a large area can be hard to find. Zoom-in to see better. See the function {FIND AREA GAP} below for a fast method to find tiny gaps.
Method2: Right-click somewhere outside all the enclosed areas. All enclosed areas will be colored for visual verification. If there is a gap, the results and the fix are the same as described in method 1. This method makes sense if you have many hand-outlined areas and you do not want to check them one at a time using method 1.
Areas selected using the 'select within mouse' methods are automatically finished. These areas are mapped during the selection process, whereas areas selected with rectangle, ellipse, or one of the line-drawing methods are mapped only when you click inside them. If you use only the 'select in mouse' methods, you can cancel the finish dialog without clicking any of the selected areas.
If you draw a line from one image side to another, you can click on either side of the line to make an area of all pixels on that side of the line. Example: draw a horizontal line on the boundary between sky and land. Click above the line to select sky, below the line to select land. The drawn lines must reach the image edges completely.
^Clear
Discard the current area permanently.
TOPIC: FIND AREA GAP
If an area outline was created by freehand drawing using multiple strokes, it is easy to leave small gaps in the outline that are not visible below 4x zoom. An attempt to finish such an area will fail because the mapping of the interior pixels will leak out through the gap and cover areas outside the intended area. If the Finish function fails, this function can find the gap. Click somewhere on the outline of the failed area. The outline will be slowly re-drawn in one direction from the clicked position, until an "end pixel" is found. This is where the gap is. The outline is then drawn in the opposite direction until the gap is encountered again. The gap is where the drawing stopped. Zoom-in on the gap and close it using freehand draw, then test again to see if the full outline can be drawn without stopping. This function can be used in parallel with the Select Area function - both dialogs can be active.
TOPIC: AREA BLEND
+image: area-blend.png +image: area-blend2.jpg
Three functions are present in this tool: mouse blend, edge blend, and edge blur.
^Mouse Blend
Any part of the area can be mouse-painted to blend with the original or any prior edit. Each mouse drag within the select-area will gradually blend-in the prior image. The rate of blending is determined by 'blend rate', which can be set separately for the mouse center and edge. You can use this to selectively blend chosen area edges: Set the blend rates to 50/0 for center/edge, and drag the mouse center over the area edges.
^Edge Blend
All edges of an edited select-area can be blended with the original image or prior edit. This can remove noticeable edge effects, e.g. an image feature was brightened against the surrounding background. All area edges change gradually from the prior image to the edited image over the distance 'blend width'. Changing the blend width for the first time will cause edge distance to be calculated for every pixel in the area. This is normally fast, but it may take longer if the area is large with a complex geometry (i.e. a very long edge). If the edge of a select-area runs along an image edge, it is not considered an edge for blending. A long edge calculation can be canceled with the Escape key.
^Edge Blur
All edges of an edited select-area can be blurred to soften a hard or unnatural-looking edge. The 'blur width' value determines the extent of the blur.
TOPIC: SHOW/HIDE AREA
Show or hide the outline of the current area. Hiding the area is useful when the area is being modified with an edit functions. This makes it easier to judge the effects of the edit. These are also available as buttons in the Select Area dialog.
TOPIC: ENABLE/DISABLE AREA
Disable the current area and keep the data so that it can be re-activated later (Enable menu). This allows you to alternate edits within a selected area and edits for the entire image.
TOPIC: INVERT AREA
Invert an existing area: the entire image is selected except for the existing area. Using the function two times returns the original selected area. Inverting a selected area invalidates the edge calculation which must be repeated if area edge blending is desired.
TOPIC: CLEAR AREA
Permanently discard the current area. This is also available as a button in the Select Area dialog.
TOPIC: COPY/PASTE AREA
A selected area can be saved to a cache file using the menu Areas > Copy. This area can be pasted into the same or another image using Areas > Paste. Click and drag to position the pasted area. The dialog controls can be used to rescale and rotate the pasted area.
TOPIC: LOAD/SAVE AREA
A selected area can be saved to a file using the menu Areas > Save. You are asked to supply a file name. A PNG file is created. The PNG file has an alpha channel for transparency information. The image is a rectangle enclosing the selected area. Selected pixels are opaque, and others are transparent.
These files reside in <fotocx-home>/saved_areas by default, but you can save them anywhere. Use the menu Areas > Load to load a saved area from a file and paste into the current image file. The background image will show through the transparent parts of the pasted area. Click and drag to position the area. The dialog controls can be used to rescale and rotate the image.
TOPIC: UNDO/REDO BUTTON
+image: ug-undo-redo.png
If an edit function is active and the image has been changed:
• left mouse click will undo the current edit
• right mouse click will redo the edit
This allows you to rapidly compare the "before" and "after" images for the current edit function.
If no edit function is active, but some edits were made to the current image:
• left mouse click will undo one edit step per click
• right mouse click will redo one edit step per click
• if combined with the A-key, undo/redo ALL edits (original <> final image)
• middle mouse click pops-up a list of all edit steps - go back to any step
This works only if the current image file has not changed since being edited. If you open another file, the saved edit steps for the current file are discarded. Of course any saved file versions (created during the edits) are not discarded.
TOPIC: EDIT FUNCTIONS
TOPIC: EDIT MENU
+image: ug-edit.png
TOPIC: ROTATE
+image: rotate.png
To level a slanted image, use the mouse to drag the right or left side of the image up or down until image looks level. A left-click on the image will add vertical and horizontal guide lines to help with image leveling. Use right-click to remove them.
Use the 90º and 180º buttons to upright an image made with the camera turned. The input widget can be used to enter any angle - this spin button responds to the mouse wheel and the up/down arrow keys.
The mirror buttons flips the image left-right or up-down. Photos will never be inverted in this manner, but the user can do this if wanted.
The [Auto Level] button can automatically level the image if the camera recorded EXIF 'roll angle' in the EXIF metadata. The [Auto Upright] button can automatically upright an image made with the camera turned, if 'orientation' is present in the EXIF metadata.
If the rotation is exactly 90 or 180 degrees, no resolution is lost, because pixels are replaced 1:1. For other angles, loss of resolution is < 1/2 pixel.
TOPIC: UPRIGHT
This is a 1-button fix for an image that is rotated or inverted (mirrored). The image file is fixed on the disk. There is no loss of resolution since pixels are copied 1:1 to the new image layout. This is not an edit function and no record is added to EXIF edit history. See also the function {BATCH UPRIGHT}.
TOPIC: CROP
+image: crop.png +image: crop-buttons.png
Use this function to cut off unwanted areas from the image top, bottom, or either side. When the dialog opens, a selection rectangle is placed over the image. Areas outside this rectangle are darkened and represent the parts of the image that will be removed. Drag any side or corner of the rectangle to move that side or corner. The dialog box shows the current width/height ratio of the selection rectangle. If "Lock" is checked, then moving a side or corner will cause another side or corner to move, so that the fixed width/height ratio is maintained. Drag from the middle (marked by a small circle) to shift the whole rectangle without changing dimensions. Use the width and height spin buttons to adjust the image pixel dimensions directly. or enter the desired values. The selection rectangle will adjust to these values.
Use the keyboard arrow keys to move the selection rectangle in 1-pixel steps. The last side or corner moved with the mouse is the one that is moved with the arrow-keys.
The [Max] button resets the crop rectangle to the full image size. If a previous edit (Rotate, Warp ...) has left transparent margins around the image, the crop rectangle will find the maximum size fitting within these margins.
The [Prev] button retrieves a list of previously used width and height values. Select from the list to put these values into the dialog width and height controls.
If "Auto" is checked, the crop rectangle is set to the maximum size for the current image center and width/height ratio, without overlapping any transparent margin area. Drag from the center to find the best tradeoff between image center and maximum crop rectangle size.
The five ratio buttons allow you to choose a preset width/height ratio. The [invert] button inverts the current width/height ratio. You can change the ratio button names and corresponding ratios with the button [customize], which starts a new dialog shown on the right. Enter desired button labels in the first row, corresponding width/height ratios in the second row (the default names are the same as the ratios).
TOPIC: RETOUCH
+image: retouch.png
Adjust image brightness and color.
• auto black level - set black point using % darkest pixels
• auto white balance - set white point using % brightest pixels
• click gray spot for white balance - click gray spot on image
• click dark spot for black level - click dark spot on image
• click for popup graph of RGB histograms
• brightness - moves the 'all' curve up or down (all colors change)
• contrast - changes the slope of the 'all' curve
• color saturation - black/white <--> intense colors
• color temperature - illumination balance (warm <--> cool)
• settings file - load or save dialog settings, assign a name
After making initial adjustments using the sliders, you can fine tune brightness and contrast by editing the curves with the mouse to change which parts of the image have increased or decreased brightness. The ALL curve adjusts all colors, and the 3 RGB curves adjust individual colors. Use ALL first, then make revisions using RGB.
^Buttons
Reset - set all controls back to a neutral position - image is also reset
Prev - set all controls to the values used for the previous image
Done - finish the edit, close the dialog, save the control settings
Cancel - cancel the edit, reset the image, close the dialog
Use the [Prev] button when processing multiple images needing similar adjustments.
TOPIC: RESCALE
+image: rescale.png
This function rescales the image to a new pixel width and height. You can input the new dimensions directly or choose a percent change. Buttons are present for setting the new size to a simple ratio of the original size. Using one of these will minimize loss of resolution. The [Previous] button recalls the previous size, a convenience if multiple images are being set to the same size. If the lock ratio box is checked, the current width/height ratio will be preserved if either width or height is changed. The change is made immediately, but the image will look the same unless it becomes smaller than the window. Resizing an image requires enough memory to hold both the original and the new image for a short time. Use of [2/1] or [3/1] with an image that is already very large may result in failure for lack of memory. A 50 megapixel image rescaled to 2x needs 3.2 GB memory, in addition to the 0.8 GB for the original image.
TOPIC: MARGINS
+image: margins.png
Use this function to add margins around an image. You can use any color and alpha (transparency) settings for the margins. Set each margin separately, or use the controls 'All±1' and 'All±10' to adjust all margins up or down by the same amount, 1 or 10. Use the mouse wheel or up/down arrow keys for speed.
Use this function to add margins around images that you plan to warp, to prevent some pixels from falling off the edges.
TOPIC: MARKUP
+image: markup.jpg
This is a menu containing the image markup functions:
draw text, draw line/arrow, draw box, draw oval
These are described immediately below. All of these functions have an [apply] button which commits the current edit and lets you begin a new one (new text, line, box, oval) within the same edit dialog. Press [done] to commit the last edit and close the dialog. The logical next step would be to save as new version or new file, or begin a new edit.
+image: draw-text.jpg
This function draws text directly on the image. Enter the text into the dialog. Multiple lines can be used. After entering the text, left-click the mouse where you want the text on the image. Click or drag to move the text elsewhere. Right click to remove the text. Use the [Font] button to select a different font. Use the [Size] control to increase or decrease the text size. Use the [Angle] control to change the slant angle of the text. The other controls allow you to provide a background color around the text, a text outline color, and a shadow effect. You can select the color and transparency for all of these. The width control adjusts the width of outlines and shadows. The shadow angle control sets the angle of the shadow. Use the emboss controls to give the text a 3D look.
You can initialize the text from any available metadata in the image file. Enter the metadata key (e.g. "user comments") and press [Fetch]. You can abbreviate key names, e.g. "usercomments" instead of "User Comments".
The [Open] and [Save] buttons start a file chooser dialog with which you can load or save all text data from or to a file. All the items in the dialog are loaded or saved, so you can keep a collection of often-used text strings and settings.
The buttons at the bottom work as follows:
• Clear - clear the text and metadata fields to blank
• Replace - image with added text replaces the current image
• +Version - image with added text is saved as a new version
• Next - open next file, put the same text at the same position
• Apply - commit the current edit and reset for new text entry
• Done - complete the current edit - image is ready to save
• Cancel - abandon the current edit
To add the same text to a series of images: prepare and position the text, press [Replace] or [+Version], then [Next], then [Replace] or [+Version], then [Next] ...
Make a watermark: Use a text transparency of 70% or more and a background transparency of 100%. The text should be faintly readable. Use the emboss controls to make the text appear to be recessed into the image.
+image: draw-line.png
This function draws lines or arrows directly on the image. Enter a line length and width into the dialog, and select an arrow head if wanted. Left-click the mouse where you want to place it on the image. Drag the ends of the line/arrow to position it on the image. Right click to remove it. Drag from the middle of the line to move without changing the angle or length. The dialog controls allow you to provide a background color, an outline color, and a shadow effect. You can select color and transparency for all of these. The width control adjusts the width of outlines and shadows. The shadow angle control sets the slant angle of the shadow. To keep a drawn line and begin another one, press [apply].
+image: draw-box.png
Choose a color and width for the box outline. Place the cursor at the position where you want a box corner, and drag to open the box in the wanted direction. To replace the box, drag again. To move the box, hold the shift key and drag the box from the center. To move one of the edges, hold the shift key and drag the edge. To keep a drawn box and begin another one, press [apply].
+image: draw-oval.png
Choose either the oval (ellipse) or circle checkbox. Choose a color and width for the outline. Place the cursor at the desired center. Drag to draw the oval/circle. The drag angle determines the shape of the oval, from circle to extreme ellipse, wide or tall. To replace the oval/circle, drag again. To move the oval/circle, hold the shift key and drag from the center. To change the size or shape, hold the shift key and drag from the lower right edge. To keep a drawn oval/circle and begin another one, press [apply]. For an oval, you can enter an angle 0-90 degrees for slanted axes, as in the example.
TOPIC: COLOR MODE
+image: color-mode.png +image: color-mode2.png
Use this function to make a black and white or color negative, or convert a negative image into a positive image, or convert to sepia coloring (for an aged photo effect).
Select one of the buttons:
• reset - return the image to the original state
• black/white positive - convert image to black and white
• black/white negative - convert to black and white negative
• color negative - replace each RGB color with its compliment
• RGB -> GBR - replace red/green/blue colors with green/blue/red
• RGB -> BRG - replace red/green/blue colors with blue/red/green
• sepia - convert to modified black/white for an aged photo effect
The slider can be used to apply the effect incrementally, from 0% to 100%.
Color negative: Each RGB color is replaced with the maximum value minus the RGB color value. For example, if the RGB colors (% of maximum) are 20/40/60, then the negative color is 80/60/40. For pure RGB colors, red becomes cyan, green becomes magenta, and blue becomes yellow.
TOPIC: PAINT EDITS
+image: paint-edits.png
Use this function in combination with some other edit function. Start an edit function and leave the controls in a neutral position. Then start Paint Edits. Specify a mouse radius and power factors for the mouse center and radius edge. The mouse pointer will be surrounded by a circle with the specified radius. When the mouse is left-dragged over an area of the image, the current edit function is applied within the circle. The strength of the function is regulated by the center and edge power factors. Usually you will use a high value at the center and zero at the edge, meaning that the strength of the edit will be maximum at the center, changing gradually to zero at the edge of the circle. As you drag the mouse over the same area repeatedly, the edits are slowly accumulated. For example, if the edit function is Retouch, and brightness is increased, then the image will brighten within the mouse area as the mouse is dragged.
Use the [undo] and [redo] buttons to monitor the change, which at first may be hard to see. Set the center power to 100 to make faster changes (with less fine control). Use right-drag to weaken or ultimately erase the edit. When done using one edit function in one or more image areas, use the edit dialog [done] button to complete the edit.
A suggested approach:
(1) start the edit function
(2) start the Paint Edits dialog
(3) adjust the edit dialog settings
(4) drag mouse over desired image areas, check results
(5) right-drag to weaken or erase the changes
(6) adjust the edit settings for the next drag
(7) alternate among steps 4/5/6 to optimize results
(8) close Paint Edits - the edit function is also closed
This method to "paint" edits incrementally can improve selected areas of an image quickly and easily. It works with the following edit functions:
Edit > Retouch, Color Mode
Repair > Sharpen, Blur, Denoise, Defog, Adjust RGB, Adjust HSL
Refine > Edit Histogram, Flatten Histogram, Local Contrast,
Amplify Contrast, Local Retinex, Saturation, Soft Focus
Effects > Emboss, Texture, Set Colors, Shift Colors, Custom Kernel
See the following functions for alternative methods to make localized edits:
{SELECT AREA} edits confined within pre-selected areas
{STACK/LAYERS} combine multiple image versions in any ratio,
'paint' different combinations in any output area
{COPY IN IMAGE} copy from one image area into another area by
'painting' with the mouse.
{COPY FROM IMAGE} same as above, but source is another image,
and scale of transfer can be varied.
TOPIC: PAINT IMAGE
+image: paint-image.jpg
This function paints over the image with selected colors, using the mouse.
The Paint Color button shows the current color. Click this button to choose a color using the standard Gnome color chooser dialog. You can also shift + left-click on the image to choose a color from the image.
The palette button opens the dialog shown in the middle. Click on the image to select the color at that position. The chosen color is reflected in the color button of the main dialog. The image shown above is the default. You can use any image as a color source. Press the [browse] button and select an image where you have saved colors for recall. This choice remains in effect until changed.
The HSL button opens an HSL color chooser shown on the right. This dialog can represent any possible color. Move the sliders to get the color you want. The chosen color is reflected in the color button of the main dialog.
The brush size control sets a circle around the mouse pointer which shows the area being painted or erased. Left drag on the image to paint with the current color. Right drag over a previously painted area to erase (undo the painting). The opacity controls determine how rapidly the color is applied (or erased) at the center and edges of the mouse circle. 100% opacity applies the full color immediately, and a low value allows you to gradually change the color using multiple drags (like spray painting from a distance). Erase also works this way: use 100% opacity to erase rapidly, and a low value to erase gradually.
NOTE: zoom the image to 100% or more when using a small brush. If the mouse steps are larger than the image pixels and a small brush is being used, some pixels may be skipped by the mouse and cannot be painted.
If paint over transparent areas is selected, painting over transparent areas will reduce or eliminate the transparency, depending on the opacity controls. If this option is not selected, only opaque areas of the image are painted.
The [undo-last] button reverses the last paint or erase operation, and this can be repeated to remove many recent edits. Each new mouse drag operation is a unit of work that can be separately reversed. The memory for undo is limited, so only the most recent paint and erase steps are kept. [undo all] will put the image back in its initial condition.
You can use the zoom image buttons to zoom the image larger or smaller as needed. If drag image is selected, you can pan or scroll a zoomed image by dragging it with the mouse. This stops the drag from painting or erasing.
If a {SELECT AREA} is active, the painting is confined within the area.
^Wacom Tablet Operation
With Paint Image, you can use a Wacom tablet instead of a mouse. Dragging the stylus in contact with the tablet surface will paint as described above. If one of the stylus buttons is held down while dragging, the operation will be erase instead of paint. You can also set paint or erase mode using the radio buttons in the dialog. Holding down a stylus button is cumbersome, which is why the radio buttons are there. Adding pressure to the stylus will increase the opacity, so you can make lighter and darker strokes without adjusting the opacity controls.
TOPIC: PAINT TRANSP
+image: paint-transp.png +image: paint-transp2.png
Paint transparent or semi-transparent areas on an image. Such areas are useful in the Fotocx Mashup function, where images or background underneath a transparent area can show through. Other image editors can also use transparent areas.
The paintbrush radius control sets a circle around the mouse pointer which shows the area being transformed. Left drag on the image to increase the transparency, right drag to decrease. If gradual paint is checked, the strength controls determine how rapidly the transparency changes at the center and edges of the circle. If gradual paint is not checked, transparency is set to 100% (left drag) or 0% (right drag) for the entire area covered by the mouse circle.
If a {SELECT AREA} is active, only the selected areas are affected.
An image file having transparency information must be saved as a TIF or PNG file. JPEG files do not support transparency.
TOPIC: AREA FILL
+image: area_fill.png
Fill all selected areas or all transparent areas with a chosen overlay color. If an area is partly transparent, the overlay color will replace the transparent fraction of the image: e.g. if the alpha channel is 100, the overlay color will have a brightness of 100/255 and the image will have the remaining 155/255. The 'Blend' slider can be used to select any mix of the original image and the overlay color.
TOPIC: COPY IN IMAGE
+image: copy-in-image.png
Paint over image areas by copying from elsewhere in the same image. This method can be used to duplicate objects within an image, or erase an unwanted object by replacing it with background taken from elsewhere. In the above example, the right balloon was copied from the left balloon, with care taken not to let the area being copied move outside the balloon edges.
Left-click on the image to select a source location, then right-click to select the corresponding destination. Drag over the image area to be painted. The source area is painted over the dragged area, immediately or gradually, depending on opacity settings. The source or destination location can be set independently with left or right click, respectively.
Copy source location to destination location using one or multiple drags:
left-click source location
right-click corresponding destination
drag over destination to copy source pixels
shift mouse location and drag to copy shifted source location
repeat
Copy the same source location to multiple destinations:
left-click source location
right-click corresponding destination
drag over destination to copy source pixels
right-click new destination
drag over destination to copy source pixels from same area
etc.
The brush size control sets a circle around the mouse pointer which shows the area being painted or erased. Left drag on the image to paint, or right drag over previously painted areas to erase (undo the painting). The opacity controls determine how quickly the image is modified (or erased) at the center and edges of the circle. 100% opacity paints fully and immediately, whereas a low value allows you to gradually paint using multiple drags. Erase also works this way: use 100% to immediately erase, and a lower values to erase gradually.
The [undo-last] button reverses the last paint operation, and this can be repeated to remove many recent edits. Each new mouse drag operation is a unit of work that can be separately reversed. The memory for undo is limited, so only the most recent paint steps are kept. [undo all] will put the image back in its initial condition.
If paint over transparent areas is selected, painting over transparent areas will reduce or eliminate the transparency, depending on the mouse opacity controls and the gradual paint setting. If this option is not selected, only opaque areas of the image are painted.
If a {SELECT AREA} is active, the painting is confined within the area.
TOPIC: COPY FROM IMAGE
+image: copy-from-image.png +image: copy-from-image2.jpg
Paint over image areas by copying from another image. The target image is 'painted' by dragging the mouse over the area to be modified. A previously selected position in the source image is painted over the target image. The area being copied and the area being painted are both enclosed in circles which move with the mouse, representing the extent of the 'paint brush'. In the above example, the rightmost boat in the right image was copied to the left image.
Start by opening the target image (the one that will be painted). Select the menu 'Copy From Image'. A 2nd Fotocx session is started showing the same image. In this 2nd session, navigate to the source image and open it. Arrange the two windows so you can keep both of them in view. Shift + left click the source image to establish a reference position. Shift + left click the target image at the position corresponding to the source image reference position. Left-drag the mouse over the target image area. Pixels from the source image are copied to the target image. Mouse circles are visible on both images and represent the areas being copied from and to. Right-drag to erase (restore the original target image). To change the source or target copy positions, repeat the two left-clicks as needed. Zoom the images to max. size if high precision is needed for the reference positions. The initial reference position is (0,0) (NW corner) for both images. You do not need to invest time to establish precise reference positions if the two images overlay naturally, as with edited versions of one image.
The brush size control sets the size of the circle around the mouse pointer, which shows the area being painted or erased. Left drag on the image to paint, or right drag over a previously painted area to erase (undo the painting). The opacity controls determine how quickly the image is modified (or erased) at the center and edges of the circle. 100% opacity paints fully and immediately, whereas a low value allows you to gradually paint using multiple drags. Erase also works this way: use 100% to erase immediately, and a low value to erase gradually.
The [undo-last] button reverses the last paint operation, and this can be repeated to remove many recent paints. Each new mouse drag operation is a unit of work that can be separately reversed. The memory for undo is limited, so only the most recent paint steps are kept. [undo all] will put the target image back in its initial condition.
The source image scale value is used to scale the source image to the target image. Start by making a trial copy to check the scale. If too big or too small, use [undo all] to erase the trial, change the scale value, and try again.
If paint over transparent areas is selected, painting over transparent areas will reduce or eliminate the transparency, depending on the mouse opacity controls. If this option is not selected, only opaque areas of the image are painted.
If a {SELECT AREA} Is active, the painting is confined within the area.
TOPIC: COPY PRIOR EDIT
+image: copy-prior-edit.png
The image from a previous edit step can be applied to the current image locally and gradually, by "painting" with the mouse. The previous edit must be one of the edits made to the current image while it is still open (unsaved edits are lost when a new image is opened). Thus you can apply any previous edit to any area of the current image being edited, as long as the image remains open as the current image. Select a previous edit using the dropdown list which shows all previous edit steps done on the current image, in sequence, and identified by the edit function used.
The mouse pointer will have a circle around it with the given radius. As the mouse is dragged, areas within this circle are gradually restored to the status of the selected previous edit. Left drag to 'undo' or remove the edit, right drag to 'redo' or restore the edit. The rate of change is regulated by the center and edge power factors. Typically you will use a high value at the center and zero at the edge, meaning that the rate of change will be maximum at the center, changing gradually to zero at the edge of the mouse circle.
You can also use {SELECT AREA} to restrict edits to selected areas of an image, rather than painting over them afterwards. Use {AREA BLEND} afterwards to blend or trim the edges if needed.
TOPIC: EDIT TEMPLATE
This is a dummy edit function that is included in the developer menu only. The purpose is to provide a template for coding a new edit function.
TOPIC: REPAIR MENU
+image: ug-repair.png
TOPIC: SHARPEN
+image: sharpen.png
This function has five methods to sharpen a blurry image, and a method to sharpen motion blur from camera motion or subject motion during exposure.
^Sharpen - General Blur
Choose the method, set the parameters, press [apply] and wait a few seconds to see the result. Make changes and repeat the process until satisfied. You can go back and forth among the methods to compare which is best for a given image. Use {SELECT AREA} to operate on different parts of an image with different methods and parameters.
For all methods, choose a small radius for images that are slightly blured and a larger values for poorer images. Amount controls the strength of the modification. Threshold suppresses changes to low-contrast pixels: a higher values reduces the amplification of low-level irregularities (image noise, uneven skin tones, etc.).
Unsharp mask: a fast and effective method also found in other image editors. A technical description can be found with a web search. This method can make visible 'halos' around high-contrast edges.
Amplify Contrast: amplify existing contrast, somewhat like the Amplify Contrast function. Effectiveness is comparable to unsharp mask, but 'halos' are reduced.
Kuwahara: small neighborhoods of pixels above, below, left and right of each pixel are compared to each-other. The pixel is given the mean color of the neighborhood with the smallest difference in brightness. This forces pixels on a blurry edge to move to one side of the edge or the other. Edges are made very sharp. Image may appear 'blocky' if a large radius is used. Subtle details can be lost.
Mean diff: pixel brightness is compared to the mean of pixels within radius. The brightness is increased or decreased for pixels respectively brighter or darker than the neighborhood mean. Effectiveness is comparable to unsharp mask, but 'halos' are greatly reduced. This is the only method that works on each RGB color separately. It can sharpen a color transition even if there is little brightness change.
Richardson-Lucy: the image is sharpened using the Richardson-Lucy deconvolution method. This method may produce good results, but is also very slow - run time is proportional to (image size) x (radius) x (iterations). To speed things up, start by selecting a small but busy area of the image using {SELECT AREA}. Hunt for the optimum radius and iteration count using this small area. Then use the same settings for the full image. Noise in the image will hamper effectiveness. If so, use {DENOISE} beforehand. If only a part of the image needs sharpening (e.g. outside camera depth-of-field), use select area for this area only.
^Fix Motion Blur
+image: fix-motion-blur.png +image: fix-motion-blur1.jpg
This is a tool to hand-optimize images with minor blur from camera motion. Blur from a moving object in an otherwise sharp image can be processed using {SELECT AREA} to isolate the object. Blur is assumed to be linear and constant velocity. The inputs are 'blur span' in pixels and 'blur angle' in degrees. The initial angle estimation can be specified by shift + mouse drag across the image in the blur direction (can be the same or opposite to the actual camera motion). Input an estimate of the blur span by using Tools > Show RGB to measure the width of blur along some bright image feature edge. Adjust these inputs, press [apply], and watch the image to find optimum settings. The response time may be slow for a large image. You can speed up the process if you use {SELECT AREA} to select a small blurred area to optimize span and angle, then clear the area to process the whole image using the same settings. The algorithm produces "ringing" noise, which can be suppressed using the input 'suppress ringing'. It works best to leave the suppress value low to find the optimum span and angle, and then add suppression as needed to reduce ringing. The Richardson-Lucy deconvolutioin method is used.
^Digital Camera Blur
Not all blurred photos are the kind of "pure" blur that is best suited for this method. The image may be a superposition of multiple shorter exposures. The entire image may not have been exposed at the same time and have the same blur (mechanical or electronic moving shutter). This method may still produce better results than nothing, or sharpen tools that work in all directions (these make feature edges sharper but do nothing to recover lost detail). It should work better on old photos made with film cameras.
TOPIC: BLUR
+image: blur.jpg
Choose a method with the corresponding check-box, input the required parameters, press [apply]. If {SELECT AREA} is active, only the selected areas are affected.
^Normal Blur
Mix each pixel with surrounding pixels within radius. Closer pixels have a higher weight. You can set the radius to 1 and press [apply] repeatedly to increase the blur slowly while you monitor the image result. This method can also be used with {PAINT EDITS} to paint blurred areas on the image using the mouse.
^Radial Blur
Mix each pixel with pixels along a line from a chosen center. Radius defines a central area that is not blurred. Length sets the blur line range: 0-length from center to edge. Choose the center by clicking on the image.
^Directed Blur
Pull a position on the image using the mouse. The area around the mouse will be blurred in this direction. Span determines the size of the area blurred. Intensity determines the strength of the blur.
^Graduated Blur
Only pixels with less contrast than the given contrast limit are blurred, and the blur radius ranges from 1 to the given value for pixels with a corresponding contrast ranging from the given limit to zero. In short: low-contrast pixels are blurred more than high-contrast pixels. This can be used to smooth skin tones without blurring hair or reducing the sparkle in the eyes. Taken to extremes, it produces a "cartoon" effect.
^Background Blur
Blur background image areas while leaving the foreground sharp. Select one or more areas that are to remain sharp (menu Areas > Select). After selecting the foreground areas, invert the selection so that the background is now selected (Areas > Invert). This is the area that will be blurred. There are two blur methods available: Constant blur: a constant blur radius is used for all areas blurred. Increase blur with distance: use the minimum blur radius for pixels adjacent to the foreground and the maximum blur radius for pixels at the maximum distance from the foreground. This requires that the edge distance for all background pixels be calculated, which can take significant time for a large image. Blur radius can be varied without recalculating edge distances. Tilt-Shift Effect: You can do this by selecting a horizontal rectangular area to remain sharp, and increasing the blur with increasing distance from this area.
^Add Motion Blur
+image: add-motionblur1.jpg
This tool adds motion blur to an image. Motion blur is blur in a single direction. Image feature edges perpendicular to this direction have maximum blur. Those parallel to the blur direction remain sharp. Use {SELECT AREA} to isolate image areas to blur separately from the unchanged background.
TOPIC: DENOISE
+image: denoise.jpg
This function reduces the noise in photos taken in low light conditions (high ISO), making uniform surfaces appear speckled. Two methods are provided, Median and Smooth. The best method varies with noise and image characteristics. Mixing methods (using one and then another) can be helpful. The Radius value defines the pixel neighborhood that will be used to compare and adjust a given pixel. A large value (Radius > 2) will reduce the noise more effectively but may also cause loss of detail. The Limit value prevents pixels with higher contrast than this value (i.e. likely not noise) from being processed. This is automatically estimated from the image characteristics, and can be altered if needed.
Set a Radius value and press one of the method buttons. Each iteration uses the previous image as a starting point, so multiple iterations will gradually suppress the noise and possibly blur some details. Use [reset] to start over. Median with Radius 1, followed by Median with Radius 2, is a good compromise between suppressing noise and preserving detail. If you see noise that is not being suppressed, try setting a higher Limit value.
You can apply different methods and limits to different areas of the image (see {SELECT AREA}, and you can "paint" the image using different methods and limits on different areas (see {PAINT EDITS}).
Technical descriptions:
Radius: pixels within this distance (pixels) of the pixel
being processed are used to compute a new RGB value
Limit: initially: statistical variance from a sample of
adjacent pixel differences - can be altered
Median: pixels are set to the median value of all pixels
within radius of the pixel being processed
Smooth: pixels are set to the mean of the best-matching
opposing pair of pixels at distance = radius
Each RGB color is processed independently, e.g. a pixel R value is set from the R values of the chosen neighbor pixels. There is no separate processing of chroma or lightness.
The [measure] button starts the right side dialog to measure the actual image noise level. Move the mouse over the image to show the RGB noise levels within the mouse circle (radius 10, about 300 pixels). This must be a featureless area so that noise is the only variation present. An area that has a uniform brightness and color and is also badly out of focus would be suitable. The dots show individual pixel RGB values relative to the mean, represented by the central solid line. The numbers at the bottom show the mean RGB brightness and noise levels on the scale 0-255. To measure camera sensor noise, use a RAW image, since JPEG images are processed inside the camera to reduce noise. More information about camera noise in RAW images can be found in the {TECHNICAL TOPICS} section.
TOPIC: DEFOG
+image: defog.png +image: defog2.png
This function can be used to remove fog/haze in an image or selected area. There are other tools for this (flatten, local contrast, amplify contrast, retinex, saturation), but fog/haze removal is secondary to their primary function. This function attacks fog/haze directly: it removes equal amounts of R/G/B color, and optionally adds-back the lost brightness, preserving the new RGB ratios. It can also reduce blue if this becomes too dominant, as often happens with distant haze. The edit curve Y-axis is fog/haze, from zero to max. removal. The X-axis is pixel brightness, from dark to maximum brightness. Thus you can vary fog/haze removal by pixel brightness. Move the curve and watch the image result. Edit the curve to vary the effect for darker or lighter image areas. Add brightness if the image becomes too dark, and reduce blue if the image is dominated by blue. Juggling the curve and the two sliders is complex and you may need time to find an optimum. You may need to use {SELECT AREA} or {PAINT EDITS} to precisely target and optimize the desired areas. The above example used two areas, the forground hills and the background mountain.
TOPIC: RED EYES
+image: red-eyes1.png +image: red-eyes2.png
This function reduces the red-eye effect from electronic flash photos. Two methods are provided. The first is faster but may not handle difficult cases. The second method is more robust but also needs more time and care. To use the first function, left-click on a red-eye one or more times until satisfied. If the darkened area is too small or off-center, do a right-click to undo the change and then left-click more precisely on the center of the red-eye. If a red-eye cannot be fixed correctly, right-click to undo the change and then use the second method. The second method can better handle more difficult cases where the red-eye is only slightly red and the color difference with the eyelids is too little for the automatic algorithm to distinguish. Place the cursor over the center of the red eye. Hold the left mouse button and drag the cursor down and to the right. A dotted ellipse will appear enclosing the red eye. Repeat if needed to get the red eye centered in the ellipse (roughly). Note that the shape of the ellipse depends on the direction of the drag, which can allow more precise enclosure of only the red-eye. Left-click inside the ellipse repeatedly while watching the red eye darken, and stop when it is dark enough. If you go too far, the eyelids may start to darken. Right-click to undo and repeat if necessary.
TOPIC: SMART ERASE
+image: smart-erase.png +image: smart-erase2.png
This function can be used to erase small objects that can spoil a good photo, such as power lines, trash on the ground, a sign, etc. The unwanted object is replaced with pixels taken from the surrounding area. This is sometimes very effective (side-effects almost invisible), and sometimes not. It works best for small or narrow objects in the photo. Radius controls the size of a circle around the mouse pointer, defining the area to select and erase. Drag the mouse to enclose all or part of the object to be removed. Left-drag selects and right-drag unselects. Press [Erase] to erase the selected area, replacing the pixels with the nearest pixels from outside the selection. If the selection was not precise enough, use [Undo], adjust the selected area, and [Erase] again. Repeated selections and erasures will accumulate until you use [New_Area] to start a new selection. The prior erased areas are now fixed and [Undo] will only work for the current selection. As with all edit functions, the main menu buttons [Undo] and [Redo] can be used to review all changes. It is likely best to work with an image zoomed to 200% or more. The Blur control adds blur to the replacement pixels. This can reduce visible side-effects, since the replacement pixels may be sharper or have more contrast than the surroundings. Change the Blur setting and repeat the [Erase] button. The [show] and [hide] buttons can be used to show the outline of the current selection or hide it to better judge the results after erasing.
For long thin objects (e.g. power lines), you can click on two ends and everything in-between will be selected. The selection works in a straight line, so for curving objects you will need to click at intervals to follow the curve.
TOPIC: REMOVE HALO
+image: remove-halo.png +image: remove-halo2.png
This function can remove halos left by sharpen, amplify contrast, local contrast, and some other edit functions. Often images from the internet will have this problem because they were sharpened using the classic 'unsharp mask' method. Select the type of halo: bright (most common) or dark. Left-drag the mouse over the halo area alter the pixels inside the mouse, as shown in the example. For a bright halo, the brightest pixels will darken as the mouse is dragged over them. For a dark halo, the pixels will brighten. Use a mouse radius larger than the width of the halo, as shown in the example. Right-drag the mouse to restore the original pixels, in case you go too far and need to do over.
TOPIC: JPEG ARTIFACTS
+image: jpeg-artifacts.png +image: jpeg-artifacts1.png
JPEG images that have been highly compressed can show compression artifacts in the form of small rectangular blocks. If dark areas of a photo have been brightened, such blocks may become more visible because the brightness steps are larger (e.g. RGB values of 11/12/13 brightened 5x to 55/60/65). This function blurs the borders between the blocks to make them less visible.
'Match Limit' determines when adjecent pixels are treated as members of the same pixel block. Most blocks will not have any pixel differences, but some blocks will have a small 'slope' between opposite sides (a JPEG compression method). Other differences may be caused by an image rescale, where pixel interpolation causes adjacent tones to leak into the block. Match Limit can be set to a lower value to get such blocks more completely mapped. 'Contrast Limit' serves to prevent blending of edges where contrast is high, causing loss of detail. Change the two settings and press [apply]. View the resulting image at >2x size and try different settings if optimization is important.
This function will be less effective on an image that has been rescaled. Use {SELECT AREA} to selectively process problem areas.
TOPIC: ANTI-ALIAS
+image: anti-alias.png
Sometimes photos show pixelation (or 'jaggies') along some high-contrast feature edges. In the example above, you can see this around the bird's eye. The anti-alias tool can reduce this. The effect is minor on most photos, where in-camera processing may have already taken care of the problem. A secondary effect is that jpeg artifacts in highly compressed images are somewhat smoothed over. Images that have been scaled-up in size will have more prominent pixelations. These can be helped, especially in the case of a 2x upscale.
Use the [apply] button to suppress the pixels, multiple times if this seems to help. 'Threshold' can be used to exclude low-contrast pixels from processing. A value of 0.1 or less is usually best.
Another method to suppress pixelation is to use {BLUR} (normal blur) with radius 1. This method will also slightly reduce the visibility of fine details.
Fotocx uses the Scale3x algorithm, modified to use "similar" and "different" color tones in place of "equal" and "not equal".
TOPIC: ADJUST RGB
+image: adjust-RGB.png
This function is used to change overall brightness and contrast, or that of selected colors. The settings are retained within and across Fotocx sessions, so this function can be used to process multiple photos made under the same lighting conditions and needing the same (or nearly same) adjustments. Use the [reset] button to restore all inputs to neutral values.
• Brightness
Increase or decrease overall image brightness
• +Red -Cyan etc.
Increase or decrease the brightness of one color and change
the complimentary color in the opposite direction
• Contrast All
Increase or decrease the overall image contrast
• Contrast Red, Green, Blue
Increase or decrease the contrast of individual RGB colors
TOPIC: ADJUST HSL
+image: adjust-HSL.png
Change a selected range of colors in an image using HSL (Hue, Saturation, Lightness). This function can be used to fix a color caste or change one color to another (e.g. an overexposed sky - too white). If you are not familiar with the HSL color model, I suggest you read the Wikipedia article about this.
Begin by selecting a target image color to match and adjust, using shift + left-click on the image. This color will be the center of a range of colors that will be selected for adjustment. Select what color attributes will be matched using the checkboxes for hue, saturation, and lightness. Each of these will narrow the range of selected colors. If none are checked, all colors are selected. Match Level can be used to further widen the range of selected colors. 100% means only closely matching colors are selected.
The Output Color controls (hue, saturation, lightness) are used to set the new output color which will replace or blend with the selected input colors. You can also set this color from the image, using shift + right-click. The resulting color will be a mix of the original color and the new color. The new color fraction is set by the Adjustment slider, which can be set 0 to 100%. Use the HSL checkboxes to determine which HSL components of input color are replaced with the corresponding HSL components of the output color. Use the sliders for output color HSL to adjust the new color. The output color is shown in the smaller box on the left, which is updated as you move the sliders.
Move the sliders and watch the live image updates to optimize the result. This is not very intuitive, and practice will help.
Hint: begin by matching on hue and saturation, and replacing only hue - this means that the output color saturation and lightness will be copied from the original image colors, and only the hue will be replaced.
This function can be used with {SELECT AREA} to restrict the change to selected image areas.
TOPIC: REMOVE DUST
+image: remove-dust.png +image: remove-dust2.png
Images made from dusty scanned slides can have many small dark spots - shadows of the dust on the slides. Historical photos from the internet often have a similar problem. This function can be used to remove the majority of such spots. Move the three sliders until the maximum number of dust spots are painted red, then press the [erase] button to erase them. Press [red] to bring back the red view, then you can adjust the sliders again and press [erase]. The "spot size limit" slider limits the size of the spots that will be erased. The "max. brightness" slider sets a threshold for ignoring spots that are not dark enough. The "min. contrast" slider screens out spots having low contrast with their surroundings. This process is usually a compromise. If the settings are not optimal, small features like tree leaves can be erased, or large spots may be left in place. Different parts of the image may need different settings, e.g. sky can be treated more aggressively than a building wall. You can simply use Erase Dust multiple times with different settings as needed to get all the dust spots. Or you can use {SELECT AREA} to process the image in sections. If some spots are persistent, you can treat them manually with {SMART ERASE}. Set a small mouse radius and click on each spot to remove it. Spots from fibers (long and thin) are usually not automatically removed, but Smart Erase can be effective here.
TOPIC: FRINGES
+image: fringes.png +image: fringesA.png
Fix pheripheral color fringes (lateral chromatic aberration) - where color fringes appear mainly in outer image areas.
The left image above is a magnified cutout of the top left corner of a photo with lateral chromatic aberration. This was mostly eliminated in the processed image to the right. Color fringes can appear along high-contrast edges, especially in the outer image areas where lens distortions are usually greatest. To get rid of them, zoom the image to a maximum size and center on an area with color fringes. Press the [search] button. The red and blue color planes are shifted to better align with the green plane, and the factors used are stuffed into the dialog box. You may be able to improve the result by revising the factors directly in the dialog: use the up/down arrow keys or mouse wheel to change the factors while watching the color fringes on the image. Modify the largest values (2.4 and 3 in the above example).
Important: this function will not work well if the image has been cropped so that the image center is no longer the same as the center of the original photograph.
^Method:
The red and blue components of each pixel are shifted using the formula
R2 = F1 * R1 + F2 * R1 * R1 + F3 * R1 * R1 * R1
R2 is the shifted distance from the image center
R1 is the original distance from center
F1 - F3 are the factors to be discovered for each color red and blue
For a perfect image, F1 = 1 and F2 = F3 = 0. The algorithm tests a range of values for F1 - F3, and retains the best values found. In each test, the image red or blue plane is warped using the formula for R2, and the warped plane is subtracted from the green plane. The best values for F1 - F3 are those where the sum of the absolute pixel differences is minimum: the warped red and blue planes overlap the green plane most accurately.
TOPIC: REFINE MENU
+image: ug-refine.png
TOPIC: EDIT HISTOGRAM
+image: edit-hist.png +image: RGB-hist.png
Edit Brightness Histogram directly edits the shape of the brightness histogram. Move the sliders and watch the image to find the optimum settings.
Cutoff: If the histogram is low or zero at the dark or bright end, you can stretch the histogram to make it extend more into the dark or bright end, or both.
Flatten: This is a fast and easy way to compensate for a common limitation in photos: the brightness range is inadequate and details are lost in image areas having nearly the the same brightness. Pixel brightness is redistributed so that each brightness level is more equally represented. Technically, the brightness histogram is made flatter. The selected low/mid/high brightness region is flattened.
Stretch: The selected low/mid/high brightness region is broadened, which necessarily squeezes adjacent areas. For example, if you broaden the low brightness region, darker areas of the image will have more contrast at the expense of brighter areas.
Low Cutoff Ramp-up: Pixels slightly above the low cutoff level are brightened, so that detail in dark areas is preserved in spite of the low cutoff. This is especially good for astronomical photos where the sky is gray from light pollution and long exposure time.
TOPIC: FLATTEN HISTOGRAM
+image: flatten1.png +image: flatten2.png
Flatten Brightness Histogram increases visible detail in areas having poor contrast. Pixels with little brightness difference compared to their neighborhood are adjusted to increase the difference. A smaller radius will intensify the effect. Adjust radius and press [apply] to updae the image. Use the flatten slider to adjust the overall intensity of the effect. The moderate slider can be used to soften the most extreme changes. If some areas (esp. sky) become mottled, use {SELECT AREA} or {PAINT EDITS} to restrict the area being flattened.
^Technical Explanation
The brightness of a pixel is compared to the brightness histogram of the surrounding area, and the brightness is adjusted up or down in the direction that would flatten the histogram within this area (make a more uniform distribution). This increases the mean brightness difference of pixels compared to their neighborhoods. A smaller radius makes each pixel adjustment depend on a smaller area, and the effect on the image is more dramatic.
TOPIC: LOCAL CONTRAST
+image: localcon.jpg +image: localcon2.jpg
Local Contrast increases the contrast in every area of an image, using the average brightness of an area to determine how much individual pixel brightness values are to be increased or decreased. This function implements a widely used textbook method. Radius controls the size of the area around each pixel that is used for the average brightness value. Power determines the strength of contrast change. Color is used to increase the color saturation. The resulting image may become too dark in the darkest areas. You can use the editable curve to brighten the output image for any selected brightness range. The example shows brightening of the darker areas of the image.
Local Contrast can create "halos" under some circumstances:
+image: localcon3.jpg
The original image is on the left. The middle image had Local Contrast applied at max. power. A halo can be seen along the border between the dark hills and lighter sky. This can be fixed with a simple trick (right image). Select the sky areas separately, using {SELECT AREA}. Apply Local Contrast to this area. Invert the selection and apply Local Contrast to the rest of the image.
TOPIC: AMPLIFY CONTRAST
+image: amplify-contrast.png +image: amplify-contrast2.jpg
Amplify Contrast increases the apparent brightness range of an image by increasing local contrast. It is especially useful to improve HDR images, but can also be applied to any image. Amplify Contrast increases the contrast between nearby pixels without increasing the overall contrast. It relies on a characteristic of human vision: contrast within a small angle is perceived more strongly than contrast over a large angle. Amplify Contrast can bring out the subtle details (low contrast) that would otherwise be hard to notice. Other methods can also be used: {RETOUCH} can increase contrast for a selected brightness range (at the expense of others). {FLATTEN HISTOGRAM} can spread available contrast more evenly. Amplify Contrast processes pixels relative to nearby surrounding pixels, and is very effective at enhancing detail and the perceived brightness range.
In the dialog, the graphic curve determines how much local contrast is increased depending on initial local contrast. The left end corresponds to low-contrast pixels and the right end corresponds to high-contrast pixels. Raise the left side of the curve to increase the contrast of low-contrast pixels (but this will also increase low-level noise). The Amplify slider below the curve regulates the calculation, from no contrast amplification on the left to full amplification on the right. If moved too far to the right, the image may show ugly artifacts, so push it back until these disappear. The curve can be dragged with the mouse and its effect on the image will show up in a second or so (depending on image size and CPU speed). The Amplify slider may also need time to show up in the image. If more contrast is wanted, raise the curve. If uniform areas (e.g. sky) become mottled, pull the left end of the curve down to reduce amplification for low-contrast pixels. In some cases it will be best to select different areas of the image and process them separately, e.g. conservative for sky, more aggressive for textured surfaces like stone walls.
TOPIC: GLOBAL RETINEX
+image: global-retx.png +image: global-retx2.png
Global Retinex can improve color and contrast for images with extreme fog/haze or color cast (e.g. a 100 year-old photo). Try the [Auto] button first. The image is searched to find the brightest and darkest RGB colors present. The darkest RGB values are subtracted from all pixels and the resulting RGB values are scaled up so that the maximum RGB values are near 255. Of course this may not be initially optimum. The spin buttons are set to the dark and white RGB limits found, and you can changes these to optimize the resulting image. You can choose your own dark and bright points by selecting the corresponding option in the dialog and clicking on the image. The multiplier spin buttons are set to 1.0 by default, and you can change these values to adjust the relative brightness of each RGB color. In the above example, the 1st image is the original, the 2nd image was made using the [Auto] button, and the 3rd image was made by selecting a bright spot on the turtle's shell as the bright point and the shadow under the front left foot as the dark point. The rightmost column of spin buttons will adjust all buttons in the same row together - use the mouse wheel or the keyboard up/down arrow keys.
The blend slider is used to mix the input image and the retinex image in any ratio. The reduce bright slider is used to attenuate the effect for brighter image areas, especially sky, where Retinex can produce strange looking results.
The algorithm was derived from concepts first published by Edwin Land in the 1970s. Search the web for 'retinex' to find more information.
TOPIC: LOCAL RETINEX
+image: local-retx.png +image: local-retx2.png
Local Retinex can increase visible details in dark image areas and other areas having low contrast. The brightness range of a zone around each pixel is used to rescale the pixel brightness as though the entire zone were rescaled to cover the entire 0-255 brightness range. Local Retinex can produce dramatic results where Global Retinex is weak.
The radius input determines the approximate zone size around each pixel. The blend slider is used to mix the input image and the retinex image in any ratio. The reduce bright slider is used to attenuate the effect for brighter image areas, especially sky, where Retinex can produce strange looking results. The reduce dark slider does the same for darker image areas. The example above is about 60% original image + 40% retinex.
TOPIC: SATURATION
+image: saturation.png
This function is used to adjust color saturation based on pixel brightness. The edit curve Y-axis is color saturation, from zero color (all RGB values equal) to maximum color (lowest RGB value is zero). The curve X-axis is pixel brightness, from dark to maximum brightness. The neutral position (no color change) is the midway value, which is also the initial value. Example: to increase the color intensity of dark areas in the image, raise the left end of the curve. The Saturation slider moves the entire curve up or down without changing its shape.
TOPIC: SOFT FOCUS
+image: soft-focus2.png +image: soft-focus.png
This function applies the classic "soft focus" effect to a photo. This is a mixture of a sharp image and a slightly blurred image. Cameras from before 1900 had lenses with spherical aberration, producing a sharply focused image from the central areas and an unfocused image from the periphery. This mixture was sometimes seen as desirable and was done deliberately. Modern cameras may use special lenses or filters for this effect. The Fotocx function makes a blurred image and mixes this with the input (sharp) image. The radius setting determines the extent of blurring (pixel span), and the mix setting sets the portion of the blurred image in the mixed output image, from 0 to 100 percent. You can use {PAINT EDITS} with this function, to vary the effect for different areas of the image.
TOPIC: MATCH COLORS
+image: match-colors.png
This function matches the colors in one image to those in another. A small spot, determined from a mouse click, is sampled from each image. The spot on the 2nd image will be made to have the same average color (RGB values) as the spot from the 1st image. The factors used to make the RGB values the same are then applied to all the pixels in the 2nd image. A common usage is to remove a color cast from an image by marking a spot on the image that should have a color taken from another image.
Procedure: The dialog lists 5 steps to take in sequence.
1 Set a radius for the spot sample area.
The resulting mouse circle is the spot area to be sampled.
2 Open the 1st image by pressing the [open] button. If the
current image is the one you want, this can be skipped.
3 Click on the image to take a color sample.
You can change the radius and click again if wanted.
4 Open the 2nd image by pressing the [open] button.
5 Click on the image at the spot you want to match the spot
color from the first image. The image colors will change
within a second or two. You can change the radius and click
on another spot, and the colors will change accordingly.
Click the dialog [done] or [cancel] button to finish.
TOPIC: BRIGHTNESS RAMP
+image: brite-ramp1.png +image: brite-ramp2.png
This function varies brightness or color across the image. You can use this to compensate for uneven lighting or a color cast that varies across the image. The direction of change is determined by drawing a line on the image. Create the line by clicking on the image, then drag either end to set the direction wanted. In the example above, green is increased in the direction of the line. Edit the All curve first to adjust overall brightness (all colors), then adjust the individual RGB color curves if needed.
TOPIC: VIGNETTE
+image: vignette.png +image: vignette2.png
This function is used to correct the darkening sometimes seen in the corners of a photo. It can also be used to highlight or colorize an object or area within an image.
Click or drag the mouse on the image to change the vignette center, which is initially at the center of the image.
Select 'Brightness' to change the brightness of the image in a radial pattern: Adjust the left or right end of the curve to change the brightness of the center and edges of the image respectively. You can give a dark surround to a portrait face, or you can fix an image with darkened corners. The curve middle level corresponds to no change. Use lower values to darken and higher values to brighten. The example above gradually darkens the periphery of the image while leaving a broad central area unchanged.
Select 'Color' to add a chosen color to the image in a radial pattern. Curve values of zero represent no change, and higher values add the chosen color to the image. The highest value corresponds to 100% color. Use this function to add a color surround to an image, e.g. surround a face with a gradually increasing color.
^Irregular Vignette
+image: vignette3.png
You can make a vignette with arbitrary shape as follows:
• Select Area - select the image area to remain unchanged
• Invert the area to select the areas outside the image
• Paint Image - paint the outside areas with the desired color
• Select > Area Blend, set the blend width to blend the edges
with the painted area
TOPIC: EFFECTS MENU
+image: ug-effects.png
TOPIC: OUTLINES
+image: outlines1.png +image: outlines2.jpg
This function transforms a photo into an outline drawing. High-contrast pixels are intensified and low contrast pixels are suppressed. The threshold setting sets the contrast thresholds. Lines below the minimum are not shown, and those higher than the maximum will have maximum brightness. The 'black/white' checkbox converts colored lines to black over white or white over black, depending on the 'negative' checkbox. Use 'Low Amplify' to brighten faded lines if wanted. 'Mode B' results in a more uniform line brightness compared to 'Mode A'.
TOPIC: SKETCH
+image: sketch.jpg
This function transforms a photo into something like a sketch. Dark pixels are aggregated into fewer pixels, leaving vacated areas brighter. Contrast can also be used as a proxy for dark pixels. Threshold can be used to filter the input image by brightness. Clip Level is used to filter the output to further reduce isolated or marginally dark pixels. Choose colors for foreground and background. Reducing the size of the input image may give interesting results. It may be important to minimize noise ({DENOISE}) before conversion into a sketch.
TOPIC: CARTOON
+image: cartoon.jpg
Transform a photo into a cartoon-like drawing. Black lines are drawn over feature edges in the image, wherever the brightness or color changes abruptly. Line Threshold sets the sensitivity for edge detection and line drawing, causing fewer or more lines to be drawn. Line Width makes the lines thicker or thinner. Kuwahara Depth controls a sharpen function which can strengthen feature edges within the image.
This function can be quite slow to respond (20+ seconds) if the image is large and if kuwahara depth is set to a high value. I suggest you start with a small value (2-3) for kuwahara depth, then adjust line threshold to optimize the density of the drawn lines. Now change kuwahara in small steps and re-adjust line threshold. If you are working with a large image, I suggest you select a small but important area within the image so that optimization can proceed faster. Then delete the area and do the entire image. You may be close to optimum already. You can kill the process in mid-stream with the Escape key.
Other edit functions, applied before or after Cartoon, may enhance the effect. These include color saturation, amplify contrast, set colors, texture, warp curved. 'Copy in Image' is useful to remove minor flaws manually. Shadows in the image are a particular problem, since they cause lines to be drawn where not wanted.
TOPIC: EMBOSS
+image: emboss2.jpg +image: emboss.png
Transform an image into a simulated relief or embossed image (a 3D effect). Feature edges are made brighter on one side and darker on the opposite, as if raised up and illuminated from the side. The radius setting determines the width of the effect, and the depth setting determines the intensity. The Light Source setting determines the angle from which the apparent illumination is coming. This can be varied to maximize the effect for feature edges most perpendicular to this angle. The image is modified in real time as the settings are adjusted. If the computer is slow and/or the image is large, there will be a small delay in the image update.
TOPIC: TILES1
This function transforms an image into an array of monocolor tiles. You can control the tile size and the thickness of the gap between tiles. This is also called "pixelate" or "pixelize". Use Select Area to confine the transform to a limited area, e.g. a face.
TOPIC: TILES2
+image: tiles2a.png +image: tiles2b.png
This function transforms an image into irregular tiles that roughly conform to the colors and contours of the image.
^base size
The tile base size, which is the unit tile size used to make larger tiles.
^color depth
Number of colors to use: 1 = 8 colors, 2 = 64 colors ... 8 = 16 million colors.
^tile area goal
The upper limit of tile size (area in pixels).
^req. color match
Set the minimum color match required for a smaller area to be consolidated into an adjacent larger area: 0 = don't care (maximum consolidation), 100 = perfect match required (minimum consolidation).
TOPIC: PAINTING
+image: painting1.png +image: painting2.png
This function transform an image into something similar to a painting. It reduces the number of colors, maps each contiguous pixel area having the same color, and then consolidates smaller areas into adjacent larger areas having the best color match.
^blur radius
Blur the image before processing. This results in smoother boundaries.
^color depth
Number of colors to use: 1 = 8 colors, 2 = 64 colors ... 8 = 16 million colors.
^patch area goal
Set a lower limit for areas that will have their own color: areas smaller than this number of pixels will be absorbed into an adjacent area with the nearest color match.
^required color match
Set the minimum color match required for a smaller area to be consolidated into an adjacent larger area: 0 = don't care (maximum consolidation), 100 = perfect match required (minimum consolidation).
^borders
Determines whether the colored areas will be delineated with a thin black border, like irregular tiles in a mosaic. After using this function, using {EMBOSS} can add interesting texture to the image.
^performance
This function can take a long time if the image is very large or the computer is slow. To speed up the process of trying out many options, select a small but important area ({SELECT AREA}) and zoom-in on this area. When done experimenting, clear the area and process the entire image with the chosen settings.
TOPIC: TEXTURE
+image: texture2.png +image: texture.png
This function adds a textured surface to an image or selected areas within an image. Radius determines the texture pattern size. Strength determines the intensity of the pattern, from almost invisible to dominant.
TOPIC: PATTERN
+image: pattern2.jpg +image: pattern1.png
Add a background pattern to an image. A small image file (pattern file) is used to cover the current image by duplicating the file, like a tiled wall. This file can be a real pattern (e.g. an image of canvas cloth, a brick wall, a repeating geometry ...), or any other kind of image. The pattern is made semi-transparent, so that the base image appears to be printed over the pattern, or the pattern over the image. Many pattern files can be found using a web search for "pattern image". Download some of these and crop them if needed to a size around 200-500 pixels. For convenience, add these to the supplied pattern files in <fotocx-home>/patterns.
Use the [Browse] button to select a pattern file. The selected pattern will be tiled to cover the base image. The pattern is partly transparent so that the base image shows through. Use Zoom to grow or shrink the pattern size. There are two methods to mix the pattern with the base image. The pattern opacity can be set 0-100%. The base image is used to fill the unused opacity - e.g. if the opacity is set to 30%, then the final image will be 30% pattern and 70% base image. Contrast is used to modify the base image brightness using the pattern brightness as a template. The two parameters can both be used and mixed in any ratio.
If the pattern file contains an image that repeats at fixed intervals both horizontally and vertically, the [Calculate] button can be used to set width and height to match. The result will be a continuous pattern without any edge effects.
If the pattern is irregular and edge effects appear where the duplicated patterns are joined, you may be able to improve this. The two Overlap values determine how much the duplicated patterns overlap at the edges, horizontally and vertically. Add some overlap to mask edge effects.
Select Area can be used to apply a pattern to part of an image, or different patterns to different parts. After applying a pattern to an image, it might be interesting to use Emboss to add a 3-D effect to the pattern.
The checkbox "Grayscale" will convert a color pattern to grayscale.
Useful pattern files in LibreOffice:
/usr/lib/libreoffice/share/gallery/www-back
TOPIC: DITHER
+image: dither1.png
+image: dither2.jpg
This function provides several ways to dither an image - convert into dots.
0 - colored dots in the style of Roy Lichtenstein
1 - pure R/G/B or black/white with random or optimized spacial distribution
2 - RGB mix using a given bit depth
3 - classic dither using a custom color palatte
4 - condense image into blobs with mean color
The classic dithers use the Floyd-Steinberg method of compensating for color errors: mismatch between an input image color and the closest color from the palette. Dots with nearby colors are mixed-in as needed so that the average over an area more closely matches the input color. The error compensation can be turned off if wanted, to get distinct color bands or contours.
Blobs: Image pixels undergo a kind of "gravitational collapse", converging into clumps around local centers of mass. 'Mass' is defined as pixel brightness. The 'radius' control roughly defines the range of attraction. Press [apply] to make the pixels converge a small amount. Do this multiple times, until equilibrium is reached with the blobs roughly the size of the 'radius' input. If radius is large and the image is large, considerable time may be needed.
TOPIC: ENGRAVE
+image: engrave.png +image:engrave2.png
Convert an image into black & white lines roughly conforming to brightness.
The Size input determines line thickness and how many vertical image pixels are used for each vertical pixel column in the output lines. The line pixel columns are split into black and white parts with their proportion roughly matching the mean brightness of the input pixels.
The Bias input can be used to make the overall image darker or brighter, whatever gives the most pleasing result. Negative/positive values make the image darker/brighter.
The Color input (0-100%) can be used to add color to the white parts.
TOPIC: MOSAIC
+image: mosaic1.png +image: mosaic2.jpg
Create a mosaic image using tiles made from all your images.
Specify the tile size in pixels (e.g. 36 x 24) and press [Tiles]. Tiles will be created from all of your images (actually the thumbnail images are used since their small size makes the process run much faster). This needs time (100K/min. on a strong computer). If you change the tile dimensions, press [Tiles] again to regenerate the tiles. After the tiles are created, press [Image] to convert the current image into a mosaic using these tiles. This takes only a few seconds. Tiles are chosen by matching the average tile color to the average image color at the tile position. If thousands of images are available and if the range of colors is good enough, the mosaic will turn out quite good. Zoom-in on any part of the image to see the tile images.
The Tile blending slider will cause the image to be blended with the tiles, making it look better if the tiles are a bad color match. If the blending is less than about 50%, the tiles remain almost as clear as before (the eye compensates the false tint).
After a mosaic is created, you can click on any tile to get a larger popup image. This is the full image for the tile, so you can drag the window as large as you like and it will remain sharp. A mosaic image can be saved like any other edited image, but if a saved mosaic is opened, clicking the tiles for a bigger image will not work. Regenerating the mosaic is quite fast, so do this if you want the popups to work.
TOPIC: ADD NOISE
+image: add-noise.png
Add random color noise to an image. Set a target spot size 1-10 and noise level 0-100%. At 100%, random noise in the range -127 to +127 is added to each RGB value of each pixel. The mean value is zero. Overflows outside the range 0-255 are truncated. Average color over a large area is preserved, with the noise superimposed. You can use Add Noise with Select Area or Paint Edits to add noise to selected areas.
^Suppression of 'banding'
In image areas where the brightness distribution has been 'stretched', visible 'banding' can occur in areas of uniform color. I have noticed this in sky and especially in very dark image areas. You can reduce this problem by adding noise to affected areas and also adding blur afterwards. If the edges of visible bands are made irregular, they become less visible to the human eye.
TOPIC: SET COLORS
+image: set-colors1.jpg +image: set-colors2.jpg
You can reduce the number of colors used in the image to create a poster effect. Set each RGB color separately, or adjust the total colors up or down. The latter will add or remove colors from each RGB color equally. Color bit depth is not used for this. Some other functions in Fotocx use bit depth, limiting available colors to 2, 4, 8, 16, etc. for each RGB color. This function is not limited in this respect. You can choose any number of colors: 1, 3, 9, 13, etc. for each RGB color. The example above uses 8 red, 5 green, and 3 blue colors.
TOPIC: SHIFT COLORS
+image: shift-colors.png
This function can be used to correct colors or convert an image into false colors. Choose any of the three RGB colors and move the slider left or right from the center. One of the two other colors will be substituted in a graduated manner. For example, you can gradually substitute green or blue for the color red. The All slider shifts all colors together. Do this first to find a first optimum, then shift the RGB colors individually.
TOPIC: ALIEN COLORS
+image: alien-colors1.png +image: alien-colors2.png
Repaint an image or selected area with random alien colors. You can control the rough pattern size and the intensity (from barely visible to dominant). Press [Apply] to get a new color distribution. Press [OK] when done, or [X] to quit.
TOPIC: CUSTOM KERNEL
+image: custom-kernel.png
Apply a custom convolution kernel to an image. The underlying technology is explained in Wikipedia. Input a kernel size, a multiply factor, an add factor, and fill-in the table values. The values can be saved into a file and retrieved later by using the [Save] and [Load] buttons. [Apply] applies the kernel to the image. [Reset] restores the original image status. Several kernel example files are available initially. You can modify these and save with a custom name.
Math: the brightness values for each N-by-N block of pixels in the image are multiplied by the corresponding values in the kernel matrix and added together. This number is multiplied by the multiply factor, and the add factor is added to it. This final value becomes the new brightness level for the image pixel at the center of the N x N block.
TOPIC: WARP MENU
+image: ug-warp.png
TOPIC: UNBEND
+image: unbend1.png +image: unbend2.png
Panoramas of nearby subjects (typically buildings or interior rooms) may show straight lines that are curved, or buildings that are slanted. Warping the images was necessary in the panorama process in order for the images to fit together. The Unbend function can be used afterwards to straighten the panorama image if needed. Vertical and horizontal dotted lines are drawn over the image, showing the unbend axes. Click or drag the mouse near the end of a line to move it. If values in the four input controls are changed, the image is warped in the manner indicated by the corresponding four images. Increase or decrease the values and repeat until satisfied. Move the axes to change the centers of warping.
See also {WARP IMAGE} for another method of correcting image curving and perspective.
TOPIC: PERSPECTIVE
+image: perspective2.png +image: perspective1.png
This function can be used to straighten a photo made from an offset angle. The image on the left is the original photo, taken from right of center to avoid reflections. The image on the right is the straightened version. This function can also be used to straighten a high building photographed from street-level or from the side.
Click on the four corners of the tetrahedron that you want to make into a rectangle (in the above case, the four corners of the painting or frame), then select [Apply]. Use [Reset] to go back and try again if needed. The clicked corners are marked with small white boxes containing "A, B, C, D". The upper left corner of each box precisely marks the image position. Clicking near a box will move it to the new position. The [Crop] button will automatically crop the image at the selected corners. The crop and straighten can be undone in sequence with the undo button. You can use the keyboard arrow keys to move the corner markers in 1-pixel steps. The arrow keys work on the last corner clicked or moved.
TOPIC: WARP IMAGE
+image: warps4.jpg
TOPIC: WARP AREA
This function can be used to make distortions within an image. You can select an image area and drag the mouse to stretch this area with respect to the rest of the image. The image is like rubber. If the mouse drag begins within the selected area, then the area is warped within its current boundaries - the movement is maximum at the mouse pointer and declines to zero at the edges of the selected area. If the mouse drag begins outside the selected area, the area edges near the mouse can be pulled out beyond the original area boundary. Many mouse drags of different lengths and directions can be combined to achieve the desired results. When finished, you can select another area and do some more warping, or select [done] to exit the function.
TOPIC: WARP CURVED
This function is useful to correct perspective problems (see also Unbend). Drag the image from any position, using the mouse. The entire image will be pulled or pushed in the direction of the mouse, but areas near the mouse are moved more than more distant areas. You can straighten curved lines or deliberately curve the image. The control 'warp span' determines the radius of warping around the mouse. 1.0 means the full image is warped, and smaller values confine the warp to smaller areas around the mouse.
TOPIC: WARP LINEAR
This function is useful to correct perspective problems (see also Unbend). Drag the image from any position, using the mouse. The entire image will be pulled or pushed in the direction of the mouse, but areas near the mouse are moved more than more distant areas. The control 'warp span' determines the reach of image warping. 1.0 means the full image is warped, and smaller values confine the warp to smaller areas. The warping is linear: the image is squeezed in a way that straight lines remain straight. The 'curl' factor (0.1 to 20) multiplies the warp amount by this power (neutral value = 1). Values > 1 make the warp greater near the mouse and less at increasing distance. Values < 1 do the opposite.
TOPIC: WARP AFFINE
This function can be used to warp an image in interesting ways. Drag the image from a corner or edge using the mouse. The changes are purely linear so straight lines remain straight. This transform is called "affine". Details can be found with a web search.
TOPIC: WARP RADIAL
+image: warp_radial.png
Add or remove barrel or pincushion distortion. Barrel distortion is often seen in RAW images that have not been processed to remove this distortion. Left click to choose a central point where changes will be centered - normally the center of the image. This is the default. Modify the 'stretch' slider to bend the image.
TOPIC: UNWARP CLOSEUP
+image: unwarp-closeup1.png +image: unwarp-closeup2.png
Closeup face photos are often distorted, because areas closer to the camera are larger in the photo than areas farther away. This function can be used to reverse the distortion. Use Select Area to select the face first (does not need to be accurate). Click the image near the center of distortion (above example: between the eyes). Move the slider to optimize. If the face is turned away from the camera, experiment to find the best center.
TOPIC: MAKE WAVES
+image: make-waves2.jpg +image: make-waves1.png
This function distorts an image into a wave pattern, as if viewed through turbulent water. The dialog allows you to change the mean horizontal and vertical wavelengh, amplitude and variance. The "perspective" input allows the wavelengths to gradually lengthen from top to bottom. Like most edit functions, this function also works within a selected area. The flood above is fake.
TOPIC: TWIST
+image: twist1.png +image: twist2.png
This function twists the image around a point chosen with a mouse click or drag. Click the desired position and move the Twist slider the amount wanted. You can also drag the mouse around the image to change the center of twisting. The Center slider untwists the central area relative to the rest. The Angle slider rotates the image.
TOPIC: SPHERE
+image: sphere2.jpg +image: sphere.png
Make a spherical projection of an image. Drag the mouse on the image to change the center of the projection (defaults to midpoint). The flatten control modifies the projection gradually from a sphere (right) to a flat image (left). The magnify slider magnifies the resulting image up to 2x. If you want the margins to be transparent, be sure to save the file as .png instead of .jpg (JPEG files do not support transparency).
TOPIC: INSIDE-OUT
+image: inside-out2.png +image: inside-out1.png
This function inverts the center-edge distances of each pixel. You can click or drag the mouse to vary the center point.
TOPIC: TINY PLANET
+image: tiny-planet.jpg
Wrap an image around a circle.
If the image is a 360 degree panorama, there will be no visible seam.
• Center Hole: the image is wrapped around a central hole.
• Cut Top: remove a top margin from the input image.
• Cut Bottom: remove a bottom margin from the input image.
• Reverse R: mirror the input image vertically.
• Reverse Theta: mirror the input image horizontally.
• Rotate: turn the output image around the center.
TOPIC: ESCHER SPIRAL
+image: escher-spiral.png +image: escher-spiralA.png
Transform an image into an endless inward spiral like the famous clock of M.C.Escher. Width determines the starting width of the outermost layer. Rim determines the starting width of the border separating layers, and Color determines its color. The default center is the center of the image. Click on the image to set a new center.
TOPIC: FLATTEN PHOTO
+image: flatten-photo1.png +image: flatten-photo2.jpg
{Book page or other curved surface
Flatten a photo of an image on a surface that is curved, e.g. around a column, or a page from an open thick book, where the pages curve inward at the center binding. The curvature of the top and bottom edges of the surface provide information about the amount of curvature and the amount of stretching needed to appear flat. The example above is a thick book. Other rounded surfaces can be corrected, e.g. a poster on a round column.
Select the upper trace option to trace the upper edge of the curved page. Click the mouse along the edge, creating a marker dot at each clicked point. After 4 points are available, a curved line is drawn through the points. Add more points and drag the points as needed to make the line conform closely to the edge. Select the lower trace option and trace the bottom edge in the same manner. When both are done, press [flatten] to flatten the page. The edges should now be straight (or straight enough). Use the [stretch] slider to stretch the sides of the image as needed, to compensate for the lateral compression caused by the curvature. Use the Widen control to widen the image as needed to restore the correct width/height ratio. The [undo] button restores the unmodified image, keeping the marker dots, which can then be adjusted for a revised attempt. The [clear] button deletes the marker dots.
+image: flatten-photo3.jpg
{Curved horizon
A wide panorama, or a photo from a wide-angle lense, may have a horizon that is not straight or horizontal. The image can be straightened (or otherwise moved) by tracing a curve through the horizon or other areas that need to be aligned along a straight line. Select either the upper or lower trace option, depending on whether the horizon (or other image part) lies mostly above or below the image middle. The image will be warped to make this curve straight. One curve is enough. The other curve is added automatically to the opposite edge (top or bottom) of the image. If the result is not satisfactory, use the [undo] button, adjust the markers on either curve, and try again. You can also save the image and apply the function a second time, using the saved image as a starting point.
TOPIC: COMBINE MENU
+image: ug-combine.png
These are functions which combine multiple image files. In the case of overlapping images, corresponding features in each image are made to coincide, with single-pixel accuracy. This may need significant time if there are many large images or the computer is slow. If you see this alignment process going wrong, you can use the Escape key to kill the process.
TOPIC: HDR
^High Dynamic Range
+image: HDR-adjust.png +image: HDR.jpg
Combine (overlay) multiple images of the same subject with different exposure levels. The combined image can show improved visibility of detail in both the darker and brighter areas, in effect using pixels from the brighter images for the darker areas, and from the darker images for the brighter areas. Many digital cameras do exposure bracketing: take multiple shots in quick succession with different exposure levels. You can combine such images to make a better one. If the camera is adjusted manually between shots, take care to keep it level and aim at the same distant point. Some misalignment of the input images can be tolerated. If things move between shots, ghosting cannot be avoided.
Select the HDR menu function and select up to 9 images ({SELECT IMAGE FILES}), which must all have nearly the same pixel dimensions. The images are aligned and combined automatically. This needs 10-30 seconds per image, depending on image size and CPU speed. When done, the combined image is shown, along with a dialog for adjustments. The contributions from the input images are shown as a series of editable curves. The horizontal scale represents pixel brightness, from dark to bright. Each curve represents an image which contributes to the pixels. The image contribution at a given brightness level is proportional to the height of its curve at that level. The initial curve for the brightest image will be high on the left and low on the right, meaning high contribution to dark pixels and a low contribution to bright pixels. The darkest image will be low on the left and high on the right, and remaining images in-between. The curves can be edited by dragging them with the mouse. The corresponding image contributions are changed accordingly, and you can see the results in real-time in the output image. In general, the brightest image should have a higher contribution to the darker pixels, and the darkest image a higher contribution to the brighter pixels. The above example shows two input images and their output image. The curves were adjusted to optimize the brightness for both the foreground and background buildings. It is often useful to apply the {AMPLIFY CONTRAST} function after HDR, to increase the perceived brightness range.
TOPIC: HDF
^High Depth of Field
+image: HDF.png
Combine (overlay) multiple photos of the same subject with different focus settings from close to distant. Different parts of the subject are in sharp focus in each image. Combine the images so that all parts of the subject are sharp. This technique is most useful for extreme close-ups.
Making the photos: choose a point for the center of the image. Aim the camera at a near object and depress the shutter button 1/2 way to set the focus on this object. Hold the button at the 1/2 position, aim the camera at the chosen center, and snap the photo. Now choose a farther object and do the same. Repeat with increasing focus distance. Hopefully each part of the subject is sharp in at least one photo. The camera position should be very nearly the same for all photos, which can be a challenge if the subject is very close. Camera movement can cause scaling and parallax problems (close objects shifted against distant objects). Such problems may be fixable later in Fotocx, but this may require considerable time. It is better to avoid the problems.
+image: HDF-paint.png
Processing the photos: in Fotocx, choose the HDF menu function and select up to 9 images ({SELECT IMAGE FILES}). The images will now be aligned as well as possible. This needs 10-30 seconds per image, depending on image size and CPU speed. The output image is an even mix of the aligned input images. A small amount of camera movement between the photos is compensated, but this is limited, and parallax shifts are not compensated at all. When the alignment is complete, a dialog opens. You can select any input image and "paint" it with the mouse on any area of the output image. This converts the original image mix to the single selected image for the area being painted. For each area or object in the image, choose an input image that is sharp in that area. The radius of the paintbrush can set larger or smaller, so you can paint large areas quickly and control fine detail when needed. If you have overlapping near and far objects, time and patience will be needed to make all of them sharp. Misalignments can be corrected by selecting the warp option in the dialog. The underlying images can then be dragged and warped with the mouse, and the combined output image is changed accordingly. The warp is limited to the area around the mouse. When a painted area is dragged, the corresponding image is automatically selected and dragged, while areas painted with other images remain fixed. Areas that have not been painted cannot be dragged. Move around to different areas and make incremental drags until all are aligned.
Suggested Workflow: Using paint mode, choose each image in sequence and paint all areas that look sharp in that image. Any boundaries that are not aligned well will show up clearly as shifts in the edges of objects in the image. Some of these can be made unimportant by changing the image used for painting (if more than one image is sharp enough). Using warp mode, make fine adjustments as needed to eliminate visible shifts.
TOPIC: STACK/PAINT
+image: stack-paint.png
+image: stack-paint2.jpg
Stack (overlay) multiple photos of the same subject taken at different times. Remove tourists and cars that come and go between shots.
Making the photos: Aim the camera at the same distant point and take multiple photos as tourists or cars move in front of the subject. Try to get two or more photos for each area of the subject not obstructed by the transient objects. Hold the camera steady and aim at the same point, so that the images will align accurately.
Processing the photos: In Fotocx, choose the Stack/Paint menu function and select up to 9 images ({SELECT IMAGE FILES}). The images will now be aligned as well as possible. This may need 10-30 seconds per image, depending on image size and CPU speed. The output image (lower left) is an even mix of the aligned input images (top row). When the alignment is complete, the dialog shown above starts. You can select any input image and "paint" with the mouse on any area of the output image. The single selected image is used for area being painted. For each area in the image, choose an input image that is free from the transient objects. The radius of the paintbrush can set larger or smaller, so you can paint large areas quickly and control fine detail when needed.
Automatic operation: press the [Hide] button to see if transient objects can be removed automatically. This will work for areas in the image where multiple photos of the unobstructed background are available (lower middle image). To show all of the transient objects, press the [Show] button (lower right image). This generally works, but not perfectly. Slight image misalignments or lighting differences (esp. moving shadows) may cause the algorithm to select background pixels instead of foreground pixels. You can use the paint method described above to repair the errors manually.
TOPIC: STACK/NOISE
+image: stack-noise2.jpg +image: stack-noise.png
This function combines 2-9 images (photos) of the same subject. The photos should be nearly the same, except for small offsets caused by a hand-held camera. If the photos were made with a very high ISO setting (low light conditions), the pixels will have considerable noise. By making many photos and averaging them, the noise can be mostly eliminated.
Making the photos: Choose a point for the center of the image. Take several photos using the same center and being careful not to shift or rotate the camera too much. The more photos the better. Up to nine can be used with Fotocx, but you can take more in order to have some to discard if they are not sharp, a common problem with low light conditions and long exposure times.
Processing the photos: In Fotocx, chose the Stack/Noise function and select up to 9 images ({SELECT IMAGE FILES}). They will be combined automatically and shown, and a dialog will open. The initial output image is a combination of all the selected input images, averaged together. This means that the RGB values for each output pixel are the average of RGB values for the corresponding input pixels. The following alternatives can be used to possibly reduce the remaining noise a little more. The use median button will change the output pixels from an average of the input pixels to the median of the input pixels (1-3 middle RGB values are averaged, depending on the number of images). This may or may not be better, so switch back and forth to compare (the screen update may need several seconds). The checkboxes for omit low pixel and omit high pixel will cause the lowest and highest RGB input values to be discarded before averaging. This may get noise spikes removed from the mix. This has no effect if the median method is selected.
TOPIC: STACK/LAYERS
+image: stack-layers.png
Use this function to combine different edited versions of an image, where you can determine which version is shown in selected image areas. Any images can be combined that have the same pixel dimensions.
Select up to 9 images of identical size. The initial output image is an equal blend of all input images. Image Ratios are the relative weights of the blended images. These can be adjusted to vary the weight of each image. Example: if 3 images are combined with relative weights of 3, 5, 7, then the combined image is 3/15 from image #1, 5/15 from #2, and 7/15 from #3. If the option "Paint entire image" is selected, the weights can be adjusted and the output image responds immediately. If the option "Paint within mouse" is selected, then the mouse can be dragged and only the area within the mouse circle is painted, using the image ratios currently active. The paint speed is controlled by the Power settings for the center and edge of the mouse. Use low numbers to paint gradually.
TOPIC: STACK/SPLIT
+image: stack-split2.png +image: stack-split.png
Two images may be selected. The two images are overlapped and displayed with a movable boundary. The first image is left of the boundary, the 2nd image is right. Move the boundary line by dragging with the mouse. This function is one way to show differences between an original and edited image.
TOPIC: PANORAMA
+image: pano-align1.png +image: pano-align2.jpg
This function stitches 2-6 images together to make a wide-angle image or panorama. The images must overlap by 10% or more, so that the program can find where they match and join them together. Start by selecting 2-6 image files ({SELECT IMAGE FILES}. It is helpful to select the images in left-to-right order, to make the initial rough alignment easier. The images are initially joined and shown with a small transparent overlap. A pre-align dialog (above) asks you to drag the images into rough alignment. Drag the images into the correct left to right order. The image to drag may overlap other images. To be clear about which image is being dragged, drag from near the image center. After the images are in correct order, align each image to its left neighbor. It works best to proceed from left to right. Move an image horizontally and vertically into rough alignment with its neighbor to the left, then rotate the image if needed by dragging the bottom edge left or right - the image pivots around the mid-point of its overlap with the image to the left. The fastest method is to align the overlap middle region first, then rotate the right image if needed to bring the upper and lower overlap regions into alignment. Extreme accuracy is NOT necessary. The images should be correctly curved and fit together well. If they do not, then 'lens mm' (focal length, 35mm equivalent) needs adjustment. Image curvature changes as lens mm is adjusted. The initial value is obtained from EXIF data if available, and this is normally good enough. If the images have no curvature (e.g. scanned images), use the 'no curve' checkbox to set 'lens mm' effectively to infinity.
If an image was cropped so that the greater dimension (width or height) was reduced, then the EXIF focal length is no longer valid. Fotocx assumes that the greater image dimension is '35' on the same scale as '35mm equivalent focal length' and calculates image curvature on this basis. If the image was cropped, the calculated curvature will be too great. Compensate by increasing 'lens mm' to reduce curvature. Increase this parameter until the images fit together reasonably well.
The 'no auto warp' checkbox is normally unchecked. Its purpose is described below.
The 'manual align' checkbox will use the manual pre-alignment as the final alignment. This is for images that have no clear features to match and automatically align the images. This option also allows the images to have zero overlap.
Press [proceed] when pre-alignment is finished, and the program will do fine alignment and join the images. Internally, the images are shifted and rotated and the degree of match is evaluated. This is done with increasing image sizes until the best alignment is found. This may need a minute or more, depending on CPU speed and image size. You can speed up the process greatly if you reduce the input images to 2/3 or 1/2 size. Do this also if the process fails for lack of memory. Panoramas with 6 large images can require 16+ GB of memory during processing. It may also be helpful to increase the size of your swapfile or swap partition. This may make a large panorama successful (after taking a long time to complete).
+image: pano-adjust.png
When fine alignment is complete, the combined image is displayed. The above dialog is started for fine adjustments of brightness. You may see a border between images if they do not have the same brightness. Choose an image to adjust using the radio buttons at the top. Adjust the brightness control to match the image to its neighbors left and right. Do this for all images needing adjustment. The match does not have to be very good, since 'Blend Width' (next) will mask remaining differences. Use the 'File Color' button to restore brightness levels from the underlying image files.
The 'Blend Width' control governs how the images are blended together: at the image overlaps, brightness is changed over this many pixels, to mask imbalances that cannot be fully corrected. The default is 1 pixel, which makes any brightness difference look obvious.
If the images do not align perfectly, you may be able to improve the alignment by using the mouse to push the images into alignment. Select 'Mouse Warp' and select one of the images with the radio buttons. Then drag the mouse along the edge of the image where it should align with its neighbor, moving the image into alignment. The image is moved locally around the mouse while more distant parts stay fixed. Images with parallax shifting will require a compromise, since it is impossible to keep both foreground and background in alignment.
The flatten image control can be used to "unbend" the image, which will straighten curved lines (e.g. curved buildings). A value of zero has no effect and a value of 1.0 will fully flatten the image.
When done, use {UNBEND}, {WARP IMAGE}, {CROP} etc. for final adjustments.
^Scanned images
Scanned images can be combined if there is enough overlap. Check 'no curve' since there is no curvature.
^Auto Warping
The images are slightly warped in various directions during alignment to find the best match. This is to compensate for shifts in camera horizon or rotation, causing image distortions that reduce the quality of fit. If the overlap area of two images includes a large object that moved in or out between the two photos, the alignment process may go crazy trying to match the images, making alignment very poor. By selecting no auto warp you may be able to get the alignment to succeed or have a smaller error. Another option is to select manual align.
^Combining Panoramas
You can make a panorama of up to 6 images in one pass. You can also combine panoramas that fit together at the sides, e.g. combine a 4-image panorama with another 4-image panorama to make an 8-image panorama. You must stop the normal image curving when you combine panoramas, since the panorama images are curved already (assuming you have not used the 'flatten' option in the final panorama dialog). Stop image curving by checking the box 'no curve' in the pre-align dialog.
^Panorama Limitations
Panoramas including nearby objects can be tricky: when making the photos, be careful to turn the camera on an axis through the lens, with minimum lateral movement, otherwise the images may align poorly because foreground objects are shifted against the background (parallax). This is not an issue when the subject is 50+ meters away, since a small lateral movement has little impact on the image. Keep the camera level to avoid a large vertical shift (horizon shift), which can cause image distortions that may not be fully corrected. Avoid rotating the camera for the same reason.
^Vertical Panorama
This can be done by rotating the input images 90 deg. so that top is on the left. In Panorama, choose the images in order top to bottom, so that the top image is on the left and bottom is on the right. Do the panorama normally. Rotate the output image clockwise so that left becomes top.
TOPIC: SHOW CIM FILES
Show the input files for the current or latest combined image, in a popup window. Only the current or latest set is remembered here. If you need a permanent memory, you can copy and paste the text into a separate text file.
TOPIC: MASHUP
+image: mashup.jpg
Arrange multiple images and text in a layout. Images can be added, resized, rotated and moved around by dragging with the mouse. Images can be made entirely or partly transparent in selected areas. Text can be added, moved, resized and rotated. Text attributes can be specified: font, size, color, outline, shadow, transparency. Lines and arrows can be added. The example here shows some of the possibilities.
+image: mashup1.png
In the first Mashup dialog, choose a background or layout image where other images will be placed. Choose an existing image or create a new monotone image with a specified size and color. You may also open a previously saved mashup project and continue editing.
+image: mashup2.png
The 2nd Mashup dialog is a choice: edit images, edit text, edit lines and arrows, rescale to a larger size, save the completed combined image (Done) or abandon the image (Cancel). The first three choices lead to dialogs to perform the respective edits. Each of these return to this dialog when done, so you can add or modify images, text, and lines/arrows in any sequence. Rescale is explained below.
+image: mashup3.png
Use this dialog to select and place images on the layout and revise their appearance: size, rotation, position, transparency. An image may be partly or wholely transparent, overall or within specified areas. This means that the background image or overlapped image can show through transparent areas. The Add Image button leads to a gallery file selection dialog ({SELECT IMAGE FILES}). Selected images are placed on the layout. After the images are added, click on any image to select for modifications. Drag the image from the middle to position the image in the layout. Drag the lower right corner to resize the image. Use the dialog controls to adjust the image. The dialog controls operate on the last image added, clicked or dragged. The 'Prev' and 'Next' buttons cycle through the images one at a time, flashing the selected image. This can be used when overlapped images make it difficult to select the desired image by clicking it. Scale rescales the image. Angle rotates the image. The Stacking Order buttons raise or lower an image relative to other images - this determines which overlapping image will be on top. Base Transparency is used to make an entire image partly transparent. The [paint] button is used to make any part of an image partly or fully transparent, using the Paint dialog shown below. The [warp] button is used to bend or warp an image, using the Warp dialog shown below. The 'black margins' checkbox can be used to remove black margins left by other edit functions, e.g. warp. These will be made transparent. The 'Image is fixed' button will prevent the image from being moved by the mouse or KB. This is helpful when images are being fine-aligned and accidental movement should be prevented (can happen when working fast with mouse clicks and drags). The Margins controls can be used to make image edges transparent. The Hard margins cut off image edges. The Blend margins make the edges partly transparent to blend them into the background or other overlapped images.
+image: mashup4.png
"Paint" more or less transparency for selected image areas. Click on an image to select it. The mouse will have a circle around it to show the range of action. Use radius to adjust the size of the circle. Left-drag the mouse over the image to make it transparent in the areas covered by the circle. Right-drag to make it opaque. If Gradual is checked, transparency changes are made slowly as the mouse is dragged. Specify a power value for the mouse center and edges to regulate the change rate.
+image: mashup5.png
Click this dialog to insure it is active, and click on an image to select it. Drag the image with the mouse - the image will warp or stretch locally in the direction of the mouse (like sheet rubber). The area of warping is roughly given by warp span, which is a fraction of the image size. Each drag is a step that adds to previous steps. Recent steps can be reversed with [undo last], and the unbent image can be restored with [undo all].
+image: mashup6.png
The Edit Text dialog is used for placing text on the layout. Enter some text and press Apply. You are asked to click on the layout where the text will be added. Drag it into position, then use the dialog controls to set font, size, color, angle, background color, outline size and color, shadow size and color, and transparencies for each of these. Drag the text to a new position at any time. Click on any existing text to show its properties in the dialog and revise them. Click on a text and press Delete to remove it. When done editing, press OK to return to the 2nd Mashup dialog.
+image: mashup7.png
The Edit Line/Arrow dialog is used for placing lines or arrows on the layout. It works very much like adding text. Enter a length and width and press Add. You are asked to click on the layout where the line will be added. A line is placed on the layout, or an arrow if one of the Arrow head options is checked. Drag the line/arrow to the desired position. Adjust length, width, angle and attributes (background, outline, shadow) using the dialog. You can also drag either end of the line/arrow to set the position of that end, while leaving the other end fixed.
You can use the mouse to move and resize objects in the layout:
• click the object to select it - it flashes to confirm the selection.
• drag from the approximate center to position the object.
• drag the image or text lower right corner to resize.
• for a line/arrow, drag either end to move that end only.
The keyboard arrow keys can also be used to move the currently selected object in 1-pixel steps.
You can also add images saved by {SELECT AREA}. In the Edit Images dialog, press [Add] to start the file selection dialog. Use the [Top] button in the gallery window, select 'saved_areas'. Open any of the .png images found there. The original area outline is used, and area blending works from these edges.
^Mashup project files
You can save a project and open it later to continue editing. However, the project file will open successfully only if the layout image and all the overlay images are still available in their original locations. The Mashup project is rebuilt using these images and some saved metadata in the project file: image and text locations, scales, transparency, etc.
^Mashup Rescale
Working with a very large layout (over 20 megapixels) can be quite slow, especially if the PC is not very strong. Dragging a large overlay image can be slow and jerky. You can work much faster if you use a smaller layout to build the project, and then make it larger after you are finished. There is no loss of resolution in the final image, since the overlay images and text are regenerated from the inputs (e.g. an image that was scaled to 0.2x in the initial layout is rescaled to 0.6x if the layout is magnified by 3x). The original full size image file is used for this rescale. The Rescale button allows you to magnify the project by 2x, 3x or 4x (4x, 9x or 16x by area). There is also a reset option to restore the original smaller project size. With this method, you can work with a 10 megapixel layout and rescale it up to 160 megapixels when done. The larger layout can still be worked on directly afterwards, but it will be much slower.
TOPIC: IMAGE ARRAY
+image: image-array.jpg
Select many images and join them into a compact array format within a colored frame.
The first dialog is shown at upper left. Background Color is the color of the outline frame and the spaces between the contained images. Array Width is the overall width of the output array, and Margin is the width of the outer margin surrounding all images. Array height is determined by the number of selected image files and the space required to fit them in the frame. Image Columns specifies the number of image columns (6 in the above example). The number of rows depends on the number of image files selected. The Separation values set the horizontal and vertical space between the contained images.
Select the image files ({SELECT IMAGE FILES}), then press [Proceed] when done. The resulting image will be made in a few seconds (up to a minute for hundreds of images). This image will typically have a very uneven bottom margin, as shown by the top right image above. The sequence of images in the array is determined by the selection order. The top row is filled first, left to right, then the 2nd row, etc.
The Optimize dialog begins automatically. It can rearrange the images so that the bottom margin is more even. Press Start and wait for the image to optimize. You can watch the progress. The function will exit if an optimum is found that makes the bottom margin even within 2 pixels. It may continue to search indefinitely if this goal is not reached. Press Stop to force the optimize function to exit with the best solution found so far. If optimization is successful, you will get even columns as shown in the lower right image. If the bottom edge is still uneven after optimization, you will be asked if you want to add margins to some of the images to make the bottom edge even. This will result in an even bottom edge, but the vertical spacings will no longer be equal.
TIP: Optimization works best if the number of images per column is at least four (better more). This gives the optimizer enough flexibility to find a solution with an even bottom edge.
The last dialog appears, shown at lower left. You must now assign a unique name to your array, one that does not conflict with other arrays you have made before. A file save dialog is started, and you can save the new array file anywhere you wish. If the map option is selected, a map of the included images is also created. This map allows you to click on any image in the array to get a larger popup image which can be zoomed up to the full size of the original image, using the mouse wheel or F11. This will work now and at any time later, even if the array file is moved, presuming the map file and the original images are still available.
The saved file must have a name indicating that this is an array image. The full file name is: array: <your assigned name>.jpg. If the map option is not selected, "array:" is not included in the name. The map files are at <fotocx home>/image_array_maps/.
Note that the popup image feature is not standard and will not work outside of Fotocx.
TOPIC: BATCH MENU
+image: ug-batch.png
These are functions that process multiple selected image files, a few or thousands. These functions can be canceled in mid-process using the Escape key, but this will leave some files processed and some not. There is a popup report showing file names as they are processed.
TOPIC: BATCH CONVERT
+image: batch-convert.png
This function is used to rename, convert, rescale and move multiple image files at once.
Dialog Inputs
• Select Files - files to convert ({SELECT IMAGE FILES}).
• Replace Text - replace text string in file names (see below).
• New Name - Optional new name, inserted text (see below).
• Sequence Numbers - Base number and adder for output file names.
• New Location - Optional new folder location for output files.
• new file type - File type for output files, or "no change".
• color depth - specify 8 or 16 bits for tif or png output.
• max. width, height - Size limits for output files.
• delete originals - Delete input files if successful conversion.
• copy metadata - Copy all metadata to the output files.
^Replace Text
If text is entered here, file names are scanned for this text, and if found, the given replacement text is substututed. The replacement text can have a different length and can also be empty, in which the text is removed from the file name.
^New Name and Plugins
The new file name may have inserted text: a photo date (from EXIF metadata), a sequence number, or the original file name. Specify what and where to insert as follows:
• $oldname - The original file name is inserted here
• $sss - A running sequence number is inserted here. See below.
• $yyyy $mm $dd - The photo date is inserted at these positions.
Example: San Francisco $yyyy-$mm-$dd $oldname $sss
The input file "Golden Gate Bridge.jpg", with a photo date of May 12, 2014, would convert to the output file name "San Francisco 2014-05-12 Golden Gate Bridge 123.jpg".
For "$sss", specify the length of the field with the number of 's' characters, e.g. "$ss" will be adequate for sequence numbers up to 99. Leading zeros are added for sequence numbers with fewer digits. Sequence numbers not fitting in the specified length will be as long as needed. Keep in mind that the file name sort order in the galleries is strictly ascii order, so the sequence of numbers 1, 2 ... 9, 10 will sort as 1, 10, 2 ... 9. You can keep the numeric order by specifying a field length of 2 ($ss), resulting in the sequence 01, 02 ... 09, 10.
Either "$oldname" or "$s..." must be present to insure output file names are unique. If New Location is missing or unchanged, delete originals is ignored. If an output file already exists, the input file is not converted.
^Albums
If image files are renamed or moved using Batch Convert, and if deletion of the original image files was also specified, then all albums containing any of the input files are updated to reflect the new file names and folder locations.
^Preserving File Sequence
If you specify a leading sequence number ($s...), the input file selection sequence will be preserved at the output location. Thus you can select image files in a desired order, or use an album with ordered images, and preserve this sequence in the output.
TOPIC: BATCH COPY/MOVE
+image: batch-copy-move.png
Copy or move selected image file to a new location. Select the input files ({SELECT IMAGE FILES}) from any folders known to Fotocx. If "Delete Originals" is selected, then the input files will be deleted after successfully moving them to the new folder. In this case, any albums referencing the now deleted input files will be updated with the new file locations.
TOPIC: BATCH UPRIGHT
+image: batch-upright.png
This function uprights image files rotated or flipped (mirrored). It depends on EXIF data to know if a file is rotated/flipped and in what direction. It is much faster than Batch Convert. You can simply select all candidate files and let it find the ones needing a fix. The search speed is about 3000 image files per minute on a strong PC. There are two options to specify the files to search. The [Select Files] button leads to a gallery file selection dialog ({SELECT IMAGE FILES}). If 'Survey all files' is checked, all image files in your database will be searched.
TOPIC: BATCH DELETE/TRASH
+image: batch-delete-trash.png
Select the files ({SELECT IMAGE FILES}). Select the option: delete or move to trash. [Proceed]. Files are listed in a popup report as they are deleted or moved to trash. After all files are deleted/trashed, albums are scanned and deleted files removed.
TOPIC: BATCH RAW
+image: batch-raw.png
This function converts selected RAW image files to JPG, PNG, or TIF format. PNG and TIFF formats have either 8 or 16 bits per color. RAW files generally have 8-12 bits per color, and noise beyond that. Therefore use a 16-bit format to keep all of the data available from a RAW file. The difference between 8- and 16-bit color is rarely visible, but a higher color depth provides a greater margin for edit functions that can radically shift the brightness distribution, causing a problem known as "banding" or "posterization".
Use the [Select Files] button to choose one or more RAW image files from gallery windows ({SELECT IMAGE FILES}). Choose one of the output formats. Choose one of the downsize options if wanted, and set the auto sharpen parameters if wanted. See the {SHARPEN} function for an explanation of these parameters.
The image files are converted one at a time and displayed in the main window. Depending on the number of files, this can take a long time (a strong PC does about 30 files per minute using Dcraw and TIFF-16 output). PNG-16 produces smaller files than TIFF-16 but the time to compress is greater.
TOPIC: BATCH OVERLAY
+image: batch-overlay.png
A small overlay image can be added at a selected position on the selected input images. This can be used to add a credit line, copyright, etc. on top of the images.
Prepare the overlay image as follows: Use New Blank Image to create a base image to hold the text. The scale does not matter, so make it larger than needed, say 1000 pixels wide. Use Paint Transparency to paint the entire base image transparent. Use {MARKUP} > draw text to put the desired text on the base image, using font, color, and other attributes as desired. Scale the text to fill most of the base image. The base image (background) is transparent. Remove excess margins with {CROP} if needed. Save the final image. A convenient location is <fotocx home>/saved_areas, but any folder can be used. This image can now be used as an overlay image for Batch Overlay.
Use the ^Select host image files^ button to select the host image files to receive the overlay image. Use the ^Select overlay file^ button to select the overlay image file.
The two ^Overlay position^ inputs determine where the overlay image is positioned on the host image, from 1-99% of the distance from top to bottom, and 1-99% of the distance from left to right. 0/0 means the top left corner, 99/99 means the bottom right corner. The overlay image will not extend beyond the host image edges.
Specify ^Overlay width^ as a percent of the host image width. The height will be set to conserve the width/height ratio. If ^Make width constant for window size^ is checked, the overlay image visual size will be made constant for the window size specified below. Without this, a "tall" image that displays with large left and right margins would have a visually smaller overlay image. The initial window size is the current window. You can input any size. Press ^refresh^ to set the current window if this has changed.
If ^Replace host files^ is selected, the input host files are replaced with the output overlaid host files. If ^Make new versions^ is selected, new versions of the input host files are created.
TOPIC: BATCH TAGS
+image: batch-tags.png
Add, remove, or change the tags for a large number of image files at once.
Use the [select files] button to select the image files ({SELECT IMAGE FILES}).
The dialog shows two lists of tags: those to add to the selected files, and those to remove. Available tags are shown in the Defined Tags window below. One of these can be added to the currently selected tag list (add or remove) by clicking it. A tag can be deleted from either tag list by clicking it. To replace tags, specify the new tags in the add tags list and the old tags in the remove tags list.
If the list of defined tags is long, it may be easier to type the desired tag into Enter New Tag. Existing tags matching what you have typed so far will appear in Matching Tags, and you can point and click one of these to add the tag to the image. If the input tag is new (no matching tag is shown), press [Add] when the tag is complete. It will be added to the selected tag list and to the list of defined tags under the category "nocatg".
If you are using tag categories, you can select a category, and only those tags will be shown in the list of defined tags. If your tags list is huge, this can reduce the list to a manageable size for pointing and clicking.
The [manage tags] button can be used to define tags with categories, as described in {EDIT MAIN META}.
To get a list of images having specific tags which you want to remove or replace, use {SEARCH IMAGES} to find the images, then start this function and use [select files] to add all the image files that you just found, or select any subset.
TOPIC: BATCH RENAME TAGS
+image: batch-rename-tags.png
With this function, you can rename any number of tags and apply these changes to your entire image collection. Click on a tag to rename from the list of defined tags, enter a new name in the Rename to box, then click on the arrow button to add this pair of names to the list on the right side. Repeat for each tag to rename. If you make a mistake or change your mind, click on the pair of names in the list to remove them. Press [Proceed] when done.
A popup window shows the number of image files containing the affected tag names. Press [Yes] to proceed. The update rate is around 500/minute on a strong computer. The next time Fotocx is started, the index file function will update all thumbnails for the same images, because the file modification date has changed.
TOPIC: BATCH PHOTO DATE
+image: batch-photo-date1.png +image: batch-photo-date2.png
This function lets you quickly fix a batch of photos that have no photo date/time or an incorrect one. Use the [select files] button to open a gallery window where you can select the image files to process ({SELECT IMAGE FILES}).
There are two ways to change photo date/times:
• Set a new date/time (right image above)
enter a new year only (yyyy) - only the year is replaced in the files.
enter a date only (yyyy-mm-dd) - the date is replaced but not the time.
enter a full date/time (yyyy-mm-dd hh:mm:ss) - both are replaced.
• Shift existing date/time (left image)
Enter + or - values into any of the 6 fields: years, months, days, hours,
minutes, seconds. Dates/times will be shifted by the entered values.
Shifted date/time values propagate to the next higher value when necessary:
Time 08:30 shifted by -50 minutes results in 07:40
Date 2016-10-20 shifted by +6 months and -30 days results in 2017-03-21
(March has 31 days).
If the checkbox 'test' is selected, a report of the old and new date/times for the selected files is produced for your inspection. No changes to the files are made. If you are satisfied that the results are correct, remove the checkbox and run again to update the files. The same set of files is already selected.
TOPIC: BATCH CHANGE META
+image: batch-change-meta.png
This function can revise metadata for multiple image files. You can add new metadata, revise existing metadata, and delete metadata. Use the [select files] button to open a gallery window from which you select files to process {SELECT IMAGE FILES}). Enter metadata key names and values to be assigned, or leave the value blank to delete the key. Press [apply]. You will get a confirmation message and you can proceed or cancel at this time. A list of commonly used key names is provided on the left. Click one of these to insert it into the first empty key name field in the dialog. This list comes from the file <fotocx-home>/metadata_picklist, which you can edit to add other keys to the list. The [Full List] button provides information on how to get a list of all available key names.
TOPIC: BATCH REPORT META
+image: add-meta-items.png +image: batch-report-meta.png
This function can report any metadata for any number of images. The output is a text file which is displayed in the default text editor for your system (e.g. Gedit for a Gnome desktop). You can use the search features of the text editor to find images matching desired metadata, or you can use the text file as input to other programs. Use the [select files] button to open a gallery window to select the files to be processed ({SELECT IMAGE FILES}). You can navigate through any number of galleries and select any number of image files in each. The [edit] button opens a new dialog (right) where you can select the metadata items to be reported. Click an item in the left column to add it to the right column and to the report. Click an item in the right column to remove it. Click the last item in the left column, "Other Item ...", to type-in any item name not appearing in the list, which contains only the most likely needed items.
TOPIC: BATCH MOVE META
+image: batch-move-meta.png
Review the topic {METADATA STANDARDS CHAOS} to understand the point of this function.
Using this function, you can consolidate metadata from multiple keys into a single key. For example, if you have files with descriptions present in various keys, you can consolidate these into the single key 'description'. This would make searching images based on words in their descriptions much easier. In general, you can move and aggregate any metadata containing user-defined text.
Use the [select files] button to select the files to be processed from a gallery window ({SELECT IMAGE FILES}), or check 'select all files'. Enter the input keys that will be aggregated and moved, separated by commas, and enter the one output key to receive the aggregated inputs. The output key may be one of the inputs. If A + B + C are the input keys, and B is the output key, the resulting B key will contain A + B + C in that order. This is usually immaterial, since only one of the many alternatives will be used in a given image file. The result for one file would be one of A → B, B → B, C → B.
Use the checkbox 'report only' to view what will be done, before you commit to changing the file data. If you want to undo your mistake, this could be very difficult. Make a backup before doing anything that could go wrong. If thousands of files are processed, this may need significant time. If you are using the 'report only' mode, you can use the Escape key to stop the report instantly and inspect the results up to this point.
TOPIC: BATCH GEOTAGS
+image: batch-geotags.png
With this function, you can select many images and add the same location data to all of them. Use the [select files] button to select the image files from a gallery window ({SELECT IMAGE FILES}). Then get the location data as described in {EDIT MAIN META}, using the buttons [Find] and [Lookup], or click on a map marker. Press [proceed] to start the update process. Use this function also to fix inconsistencies in location spelling or latitude/longitude data. If location and/or country is left blank, they are not updated. To erase location or country, input the name "null". If latitude and longitude are left blank, they are not updated. To erase latitude and longitude, input "0" for both values. You can update location/country only, latitude/longitude only, or all items. In practice, you may find that the camera GPS inserts latitude and longitude without location and country, or it uses an unwanted language, or all capital letters, or some other value needing repair.
TOPIC: EXPORT FILE LIST
+image: export-file-list.png
This function is used to create a file containing a list of image files. These are fully qualified file names, one per line in the text output file. This has no use inside Fotocx. If you need to select images to feed into a shell script or another program, this is the way. The [Select Files] button starts a dialog for selecting files ({SELECT IMAGE FILES}). Use the Browse button to select or define the output file.
TOPIC: EXPORT FILES
+image: export-files.png
This function copies selected image files to another folder. The intended use is for copying files to share with others, e.g. uploading files to a photo web site. The output files are JPEG. Options: downsize, export metadata. Select image files by clicking gallery thumbnails ({SELECT IMAGE FILES}). Select a folder where the image files will be copied. If 'export metadata' is selected, a limited set of metadata is also copied. These are: photo date, keywords (tags), copyright, title, description.
TOPIC: TOOLS MENU
+image: ug-tools.png
TOPIC: INDEX FILES
+image: index-files1.png
Fotocx needs to know where all your image files are located (folder and file names) and their embedded metadata (dates, tags (keywords), geotags, titles, descriptions, ratings). This data is indexed for fast searching. Fotocx also creates thumbnail images so that the gallery windows (thumbnail pages) will work fast. Fotocx does not modify or copy your image files - it only reads them to make the index and thumbnails. These are typically 2% as large as the JPEG files from a modern camera.
The Index Files function runs whenever Fotocx is started. This function will create missing thumbnails, replace outdated ones, and refresh the metadata index using current data from your image files. This may need significant time if you have many thousands of new files. The speed can range from a few hundred to >20K files per minute, depending on computer speed, disk speed, and average file size. If there are few or no new files, indexing completes quickly. Indexing can also be started manually from the Tools menu.
NOTE about indexing speed: The rates stated above are for JPEG files around 3 MB. Larger JPEGs and TIFFs are slower. RAW files and large PNG files may be very slow, 200 per minute or less. You can find out more about performance limitations in the {FOTOCX PERFORMANCE} topic.
Image files modified or moved within Fotocx are taken care of automatically. The Index function is used only for new image files created from outside Fotocx (e.g. a new batch of photos was added), and for files modified, moved or renamed from outside Fotocx.
Enter your top image folders (e.g. /home/<user>/Pictures). Use the [browse] button to locate and add folders. These folders and any subfolders containing images will be processed. It does not matter if other files are mixed with the images. The simplest way is to use /home/<user> as the only top folder, but it is better to separate the image files from the 100,000 other files that may be under /home/<user>. Delete an entry by clicking the corresponding X.
Enter the thumbnails folder where thumbnail files will be stored. Use the supplied default /home/<user>/.fotocx/thumbnails, or set your own location. The folder name must end with /thumbnails, and this will be added to your selection if needed. The folder is created if not already present.
If you have used folder or file names to classify your images, you can make immediate use of these in the {SEARCH IMAGES} function. If you have saved dates, tags, geotags, titles, or ratings in your image metadata (using other applications), these will also be searchable. After the images are indexed, searching them by any of these items is almost instantaneous. Other items in the image metadata can also be searched, but at a slower speed. See {SEARCH IMAGES} for details.
^Index Metadata Items
+image: index-files2.png
You may add up to 10 other metadata items to the image file index. These are in addition to the standard items mentioned above. Metadata in this list can be searched as fast as the standard items. You may not need this, but if you sometimes need to search non-standard metadata items, you can add them here and the search speed will be almost instantaneous. Press the [select] button for "extra metadata" to get the above dialog. Click on items in the left list to add them to the right list - the items to be added to the index. Click on an item in the right list to remove it. Press [done] to commit the changes. If you make any changes to this list, your entire image collection will need to be indexed again. This will proceed much faster than the initial indexing, because the thumbnails are already there and do not need to be created. Only the image file index will be refreshed.
^Fotocx Startup Time
If you have a huge image collection, the first startup after a reboot may need some time, even if there are no new image files. Subsequent startups are faster because file data is now cached in memory. If startup time is still a problem, you can bypass the indexing. This may be especially useful if you use a file manager (like Nautilus) to start Fotocx with a selected image file, and you want the image to open instantly. See the {SETTINGS} topic immediately below for more information.
^Accessing non-indexed Files and Folders
A non-indexed image file or folder is one that is not included within your declared top image folders (subfolders of your declared image folders are always included). You can navigate to such a folder and view the thumbnails normally, and you can view and edit such files normally. There are limitations that you should understand.
• These files will be missing from any search results and map views.
• Thumbnails are created at the time of viewing - gallery paging may be slow.
If you access a portable (slow) storage device (e.g. camera SD card), you will have this situation and you will notice the balky performance. Thumbnails will be created as needed, and they will remain after the device is removed. I recommend that you first copy the files to a declared Fotocx folder or subfolder, and do whatever Fotocx processing you need from this location. The performance will be much better.
^Removable Disks
Run the Index function with the removable drive mounted, add the desired top image folders from this drive, and let the indexing process run to completion. This is no different from the procedure with permanent, fixed storage. After this, Fotocx can be used with the removable drive mounted or not mounted, and nothing will be lost. If you operate Fotocx without the drive mounted, the image files on this drive will disappear from Fotocx view. When the removable drive is mounted again, and Fotocx is started (or the index function is run manually), the last status is restored. If any image files were modified in the interim, this is detected and the index data and thumbnails are updated in the usual manner.
TOPIC: QUICK INDEX
Perform a quick incremental index in the current Fotocx session with no user inputs. If image files are updated while Fotocx is running, the Fotocx index is no longer up to date. The new or modified files may not appear in Gallery View, and are excluded from reports and maps. If they appear in Gallery View, they are marked "not indexed". Use Tools > Quick Index to update the Fotocx index. The time needed will depend on the number of new or modified files present within or underneath your top folders. For 100 files or less, it should be a matter of a few seconds.
TOPIC: SETTINGS
+image: settings.jpg
Various user preferences and settings are collected in this dialog. They are also saved in the file <fotocx-home>/parameters. Most changes are made immediately. Some will cause Fotocx to restart.
• Startup View - initial display when Fotocx is started
• Recent Files Gallery: the most recently seen image files
• Newest Files Gallery: files most recently added/modified
• Specific Gallery: the specified folder gallery
• Album Gallery: the specified album gallery
• Previous Gallery: gallery last used in the prior session
• Previous File: file last viewed in the prior session
• Specific File: the specified image file
• Blank Window: start with a blank window
• Browse button: dialog to select a folder, album, or image file
• Background - background colors for File and Gallery View windows
• Menu Style - menu display style: icons, text, or both
• Menu Colors - menu text color and background color
• Dialog Font - font for menus and dialogs
• Zoom Speed - Choose 1-8 clicks or [+] keys per 2x image increase
• Pan Mode - Drag: image moves with the dragged mouse
- Scroll: image moves against the mouse
- Fast: image moves 2x more than mouse
• JPEG files - quality level 1-100, default 90, 70+ for good quality
• TIFF files - select a compression method to use
• Curve Node - minimum node separation for edit curves, % of scale
The default is 5% of scale, allowing up to 20 nodes in a curve
(also mouse capture threshold when node is clicked or dragged)
Use a higher value for touchpads, because less precise control
• Map Markers - pixel size of the red dots marking image locations
• Overlay Text - line wrap limits for text displayed on image
• Image Position - position image left/center/right in wider window
• Confirm Exit - popup dialog option: you really want to quit?
• Index Level - set the index level depending on Fotocx context
Default values in parentheses - See below for explanation
• Log Level - quantity of log messages in terminal or log file:
error messages only, + information messages, + dialog inputs
• RAW Loader - shell command for loading RAW files - see below.
• RAW Options
edit commands - change or add shell commands - see below.
use embedded image colors (camera maker colors) - see below.
• RAW Files - customize this list to match RAW file types used
• Video Files - customize this list to match video file types used
• Video App - shell command for playing video files - see below
^File Quality and Compression
JPEG file quality level: use 70 or higher for good image quality (default 90). TIFF file compression: reduce file size at a cost of longer file save time. PNG file compression level is '1' and is not adjustable. This reduces file size by about 50% and slightly increases file save time. Higher values seem to do nothing but increase the file save time (libpng is used).
^Overlay Text
When filenames/titles/captions are displayed over the image (see {CAPTIONS}), these numbers control line wrapping for long paragraphs of text. Lines will wrap at the last space character found between the lower and upper limit, or unconditionally at the upper limit if there are no spaces. Deliberate line breaks made when editing metadata are also recognized. Choose values that are appropriate for your monitor size.
^Image Position
If the window is wider than the image (i.e. window width/hight ratio > image), the image can be shifted to the left side, centered, or to the right side. If left or right, the unused margin is maximized, which may be more convenient to position dialog boxes.
^Image Index Level
These two parameters ('command' and 'file manager') govern a tradeoff between startup time and completeness of the image index. A complete image index is required for accurate results when using image search and map functions. Building a complete image index may need substantial time if your image collection is huge or if there are many new or modified files since the last Fotocx startup.
Fotocx startup time depends on the following factors:
• If there are new or modified image files that have not yet been
indexed, they must be found and added to the image index.
• The first startup after a reboot needs more time than following
startups, which are faster because data remains cached in memory.
First startup time with a 5400 rpm disk is roughly 2 seconds
per 10K image files. Following startups are 2-3x faster. First
startup with an SSD disk is roughly 1 second per 20K image files
(on a strong PC). These numbers assume zero new (not yet indexed)
image files.
If you start Fotocx by clicking on a file listed by your file manager, you likely want to see the image instantly, not wait for indexing. You can control this with the parameters 'command' and 'file manager'.
• The 'command' parameter controls how Fotocx indexes when started
from a menu, launcher or command. The 'file manager' parameter
controls how Fotocx indexes when started by clicking on a file
name displayed in Nautilus or other file manager.
• A value of '0' means no indexing at all. Startup is very fast.
Image search and map functions are disabled. Viewing and editing
images and metadata is normal.
• A value of '1' means load the old index file but do not search
for new files to update the index. Startup time is moderately fast.
Image search and map functions work normally, but any new (not yet
indexed) image files are not included.
• A value of '2' means full indexing: load the old index file,
search for new fies (not yet indexed) and update the index file.
Startup time depends on how many new image files must be indexed
and the speed of your computer. Image search and map functions
produce complete results.
You can also start the index process manually ({QUICK INDEX}) if you want to use search and map functions with complete results. You do not have to change parameters.
^RAW Loader
The RAW loader is the command used to read a RAW file and convert it to TIFF with 16-bit color depth. It is used when a RAW file is viewed. You can use the Fotocx edit functions to edit and optimize the file, e.g. reduce noise, adjust color, fix barrel distortion, etc. The default RAW loader is dcraw using the sRGB color space. A few other options using dcraw or rawtherapee are supplied in the pick list. These commands are kept in the file 'raw_loader_commands' in the Fotocx home folder. Edit this file to change these or add new options (see below). You may want to prepare multiple commands for multiple cameras or multiple in-camera processing options. If you prefer to use a RAW editor interactively, create a plugin command for this (see {PLUGINS}).
^RAW Options
• edit commands: press the button to edit the list of RAW loader
commands. A text editor will start in a new window, with the
current list of commands.
• match embedded image color: use the RAW file embedded image as
a guide to map the RAW image colors to the converted TIFF image.
This is the camera maker's interpretation of the RAW data -
a good place to start if the RAW file needs further editing.
The embedded image is usually the same as the camera JPEG file.
^Video App
Enter a shell command to start a video playback app. Use '%s' to mark where the video file name is inserted in the command line. Here are some examples:
ffplay -loglevel 8 -autoexit %s
mpv -really-quiet %s
totem %s
vlc -q %s
firefox %s
TOPIC: KB SHORTCUTS
+image: KB-shortcuts.png +image: KB-shortcuts2.png
This function is used to view or change custom keyboard shortcuts. Currently assigned shortcuts are shown in the first window. If you press the [Edit] button, the second dialog is shown, where you can add and change keyboard shortcuts. Enter a new shortcut using the keyboard. You can use the keys A-Z, 0-9, F2-F9, and most of the symbols (% $ & * < etc.). You can combine a key with one of Ctrl/Alt/Shift: Press and hold ONE of Ctrl/Alt/Shift, then press the key, then release both. Select one of the available menu assignments from the list on the right. Remove a shortcut by selecting it and pressing [Delete]. Press [Done] when you are finished. [Cancel] will discard all changes.
TOPIC: RGB HISTOGRAM
+image: RGB-hist.png
This function opens a small window that shows a brightness histogram graph of the current image in File view, or the currently selected area of the image. This graph updates immediately for new images or as edit functions change the image. There are four graphs in four colors: red, green, blue graphs are for the respective colors. The black graph is for overall brightness. Use the buttons [All] [Red] [Green] [Blue] to select the colors to show.
TOPIC: MAGNIFY IMAGE
+image: magnify-image.jpg
This function magnifies the image in an area around the mouse pointer. Left-drag the mouse around the image to magnify different areas, analogous to viewing a printed image through a magnifying glass. Use the dialog to adjust the radius of the area and the amount of magnification. A mouse click will end the magnify, and a new mouse drag will start it again.
TOPIC: MEASURE IMAGE
+image: measure-image.png
Click any two positions within an image to measure the pixel distance between the points. The clicked positions are labeled A and B on the image. These labels always show last two points clicked. The dialog is updated with the distances separating these two points:
X-distance (horizontal distance)
Y-distance (vertical distance)
H-distance (total distance)
TOPIC: SHOW RGB
+image: show-RGB.png
When a point on the image is clicked, the RGB values are shown in a dialog window. The last 9 clicked points are displayed. The values have the format xxx.dd, where xxx is the upper 8 bits of the color value and .dd is the lower 8 bits. The range is 0.00 to 255.99. The lower 8 bits are zero unless the image is being edited or the image is a 16-bit TIFF or PNG file. The outputs are updated in real time if the image is being edited. If "labels" is checked, the points are labeled on the image with letters A-I, corresponding to the letters A-I in the dialog window. If "delta" is checked and the image is being edited, then RGB changes are shown instead of the absolute values.
If you open another image (e.g. to compare with the prior image), the positions are kept and updated if they are within the new image boundaries. This facilitates the comparison of images at the level of pixel RGB values.
TOPIC: GRID SETTINGS
+image: grid-lines.png
There are two grid line functions: Grid Settings sets all grid parameters. Toggle Grid sets the grid lines on or off (showing or not showing in the image window). Grid lines are horizontal and vertical lines at regular intervals across the image. These lines can be useful alignment guides when an image is unbent or warped to straighten walls or other objects in the image. The settings for x- and y-spacing set the spacing (pixels) between lines. If the controls for x- and y-count are NOT zero, the x- and y-spacing values are ignored and the number of lines will be set from these counts. Example: set x-count and y-count to 2 lines each in order to divide the image into thirds, both horizontally and vertically. The x- and y-offset controls can be used to shift the grid lines to intersect a desired point in the image. The x-enable and y-enable checkboxes can be used to enable or disable the vertical and horizontal lines separately. Use Toggle Grid to turn the grid lines on or off. A keyboard shortcut (default 'G') can be assigned to Toggle Grid, so the grid lines can be turned on or off with one keystroke. If an image is printed with grid lines enabled, the grid lines are also printed.
TOPIC: LINE COLOR
Some functions draw lines over the image (Crop, Select Area, others). You can change the color of these lines to maximize contrast against the background image. The small dialog can be left open while editing, to conveniently switch among available colors (black, white, red, green).
TOPIC: DARK/BRIGHT PIXELS
+image: dark-bright-pixels.png
This function is used to highlight the darkest and brightest pixels in an image. Adjust the two spin controls to set the brightness thresholds, which are initially 0 for dark pixels and 255 for bright pixels. Pixels with a brightness less than the dark threshold or greater than the bright threshold are rapidly "blinked" to make them stand out. The image responds quickly to changes in the sliders. You can use this function in parallel with edit functions to check for brightness clipping.
TOPIC: MONITOR COLOR
+image: moncolor-small.png
Eight color bands are written across the screen with brightness from zero (black) to 100%. You can use this to adjust the brightness of your monitor. The left end of each stripe should be as black as possible, but you should start to see some color within a few mm from the left edge. If the completely black portion is wider than this, adjust the monitor. There are 255 brightness steps from black to 100% (8 bits per color). The steps are too small to distinguish with the eye. This evaluation should be done in a darkened room (with little external light falling on the monitor).
TOPIC: FIND DUPLICATES
+image: find-dups.png
Find duplicated image files anywhere within your image database. A duplicate image file can be an image file that exactly duplicates another image file, or an image file that "almost" duplicates another. For the sake of speed, thumbnail images are compared in memory. Hence it is possible that identical thumbnails are found for which the main images have some minor differences that do not show up in the thumbnails. An image copy that was reduced in size is likely be classified as a duplicate. Thumbnail size can be set from 32 to 512 pixels (max. width or height). A larger size reduces the probability of false positives. The thumbnail size greatly affects the amount of main memory required - e.g. for 100K images, size 64 needs about 880 MB, whereas size 256 needs about 14 GB. memory required is roughly:
size x size x 0.75 x 3 x (image count)
Press the calculate button to calculate the largest thumbnail size (for the shown file count) that can fit within the free memory available.
Two parameters are used to set the sensitivity for detection of identical or nearly identical images: pixel difference is the RGB value difference below which pixels are considered equal. Set to 1 to detect any pixel difference. Pixel count is the number of different pixels below which two images are classified as duplicates.
example: if pixel difference = 2 and pixel count = 10, then images are
classified as duplicates if fewer than 10 pixels differ by 2 or less.
The output is a Gallery View, showing each set of duplicate images. If two images are duplicates, the two images will appear in the output. The output gallery is saved as album "Duplicate Images". You can use Batch Delete/Trash together with this album to choose which duplicates to delete.
^Current Gallery option
You can confine the search to image files in the current gallery. This can also be the output of the {SEARCH IMAGES} function. Use this method to select some subset of your image collection, using folder/file names, a photo date range, etc.
Performance (measured with a 4 GHz computer)
Find 8 duplicates from 14K images, SSD disk: 8 seconds
Find 762 duplicates from 56K images, SSD disk: 1.1 minutes
Find 12K duplicates from 215K images, 5400 rpm disk: 13 minutes
TOPIC: SHOW RESOURCES
+image: resources.png
Report the computer resources used by Fotocx:
• CPU time: usage since Fotocx startup or since the last sample
• Real memory: the real memory currently in use (excluding swap)
• Maps cache: cached map tiles and MB of disk storage used
• Clear cache: delete all cached map tiles
• [Sample] button: take a new sample and report the data
The [Sample] button resets the CPU time. The next sample will show only new accumulated CPU time. The CPU time is the time for all process threads. If a function uses multiple parallel threads executing on multiple CPU cores, the measured CPU time may greatly exceed the elapsed time. 4 parallel threads running on 4 CPU cores for 1 second accumulate 4 seconds of CPU time.
TOPIC: HELP MENU
+image: ug-help.png
• User Guide
table of contents
• Video Tutorial
Show a Fotocx video tutorial on YouTube.
• Outboard Programs
List optional outboard programs and provided functions.
• Log File
Display log file with information and error messages
(same data visible if Fotocx is run in a terminal).
• Command Params
Show available command line parameters
• Change Log
Show additions and bug fixes in the current release.
• Copyright
Show copyrights and licenses relevant for Fotocx
• Privacy
Privacy policy
• About
Show installed release number, contact, executable.
• Home Page
Show the Fotocx home page on https://kornelix.net
• Uninstall
Delete application files and optionally user data files.
TOPIC: OTHER TOPICS
TOPIC: VIDEO FILES
Video files (.mpeg, .mp4, etc.) may be mixed-in with your image files. They will show as image files in both file and Gallery View. The image shown is the frame 1 second from the start. In File View, the keyboard is used to control the video. The 'P' key will start, pause, and resume the video, or replay a video that has ended. The 'Q' key will quit the video and close the window. These keys cannot be customized. Use the {SETTINGS} menu to select the application for playing video files. The thumbnail will show the 1-second frame by default, but this can be customized to show any frame. Use the function "Thumbnail Frame" from the right-click popup menu, from either the full size image or the gallery thumbnail. Insert the playback time (minutes, seconds) for the frame you wish to show in the thumbnail image.
TOPIC: WEB UPLOAD
Most photo websites have the ability to upload multiple image files from a single folder, using only a web browser. Use one of the Fotocx functions listed below to select and copy image files to the desktop or any other folder. From there, use the photo website's native browser interface to upload the image files.
{EXPORT FILES} - copy selected files from many locations to a single folder
{BATCH CONVERT} - same functionality plus many more options (see below)
The first function is simple to use and can only downsize and copy image files. The second function can also downsize and copy, but it has many more features:
• rename the files (with sequence numbers and photo dates)
• convert to another file type
• upright images turned 90 degrees
• remove metadata
• sharpen
• add an overlay image (e.g. copyright text)
^Privacy Warning
Photos contain metadata you may not want to make available to others.
Please review the information at
^https://gitlab.com/fotocx/fotocx/wikis/privacy
TOPIC: MOVE FOTOCX HOME
The default location for 'fotocx home' is /home/<user>/.fotocx (like most Linux apps). This folder is where Fotocx data is kept, including index data and user settings. If you have any of the following conditions, you will need to move 'fotocx home' to a folder outside of /home/<user>, typically on a mounted volume.
• multiple installed Linux systems which need to share Fotocx data
• multiple user accounts which need to share Fotocx data
• Fotocx data should be retained after a new Linux install
In the following, "/<mount-point>/fotocx" means the new Fotocx home folder.
1. Set the current folder to your normal home folder:
$ cd $HOME
2. Create the new Fotocx home folder:
$ sudo mkdir /<mount-point>/fotocx
$ sudo chown user:user /<mount-point>/fotocx
3. Copy Fotocx files to the new home folder:
$ cp -p -R .fotocx/* /<mount-point>/fotocx
4. Edit the file /<mount-point>/fotocx/image_index_*/image_folders
from: /home/<user>/.fotocx/thumbnails
to: /<mount-point>/fotocx/thumbnails
5. Create a pointer file to the new home folder:
- gedit .fotocx-home
- file content (1 line only): /<mount-point>/fotocx
6. Rename the old Fotocx home folder (to disable) and test Fotocx:
$ mv .fotocx .fotocx-old
7. After testing that everything works, remove the old home folder:
$ rm -R .fotocx-old
See {COMMAND PARAMETERS} -home parameter if you want multiple Fotocx image collections, managed separately.
TOPIC: ORGANIZING IMAGES
The goal is to find all images for given criteria, e.g. photos of a given person at a given place and/or time range, all photos of a given person, photos from a specified location or event, etc. There are several ways to organize an image collection to accomplish this, with advantages and disadvantages you need to understand. The methods listed here (except for albums) are standards compliant and will work with other programs that support the same methods. These are (1) searching based on metadata (dates, ratings, tags (keywords), geotags (locations), titles and descriptions, and (2) searching based on folder and file names or partial names.
^Relevant links
{EDIT MAIN META} {BATCH TAGS} {BATCH RENAME TAGS} {BATCH GEOTAGS} {BATCH CONVERT} {SEARCH IMAGES} {PLACES/DATES} {TIMELINE} {INDEX FILES} {MANAGE ALBUMS}
Fotocx can search using the following image metadata: photo date, file date, rating (0-5 stars), tags (keywords), geotags (location names geocoordinates), and text appearing in titles and descriptions. Searching based on file and folder names can also be combined with metadata searching. Any other metadata can also be searched, although not nearly as fast as the items listed, which are duplicated in a special index file for fast searching. A strong computer can search for the listed metadata items and file folders/names at a speed exceeding 10K images per second.
All of the search methods described below can be used in combination. The output of a search function can be the input of another search function (to further narrow the search), and search outputs can be added to prior searches.
The following is an overview of different ways images can be made searchable.
^Folder and File Names
These can be used as a basic organization that will enable you to find images even if more effective organizations are not used. The highest physical organization should be by time, because this will naturally group photos together that are related. I suggest using one subfolder per year named 2001, 2002, etc. This will also prevent any one subfolder from getting too big. Optionally, image files may be further organized in time sequence by using MM.DD as the start of the file name. The rest of the name can be a topic, location, or event, and a sequence number.
Example: /images/2011/08.20 Spitzbergen 23.jpg
This very basic organization allows Fotocx to find files by searching for years and topics (in file names). In the above example, a search for "spitzbergen" or even "spitz" will produce all the images of Spitzbergen. Years can be also be searched and combined with topic searches, e.g. "2012 Paris". The Batch Convert function lets you rename a batch of photos taken at one location or event by specifying a template name like this:
"$mm.$dd Spitzbergen $ss"
Month and day (from the EXIF photo date) replace $mm and $dd. "Spitzbergen" replaces the camera file name (P00123456), and a sequence number replaces $ss.
^Titles and Descriptions
A simple method of organization is to use image titles and descriptions. These are arbitrary text strings that can be added to a series of images in rapid sequence: Start {EDIT MAIN META}, open an image, input text, press [apply], press [next], input text ... Titles and descriptions are two separate inputs but treated logically the same. They are searchable: words appearing in titles and descriptions can be searched. You can specify persons, location, topic, etc. for each image and then find them again quickly.
^Tags (EXIF keywords)
The most powerful tool is tags, but this also requires the most organizational care. You can go through your images sequentially and add tags by clicking on a list of defined tags. New tags can be defined as needed. Images can have many tags, and can be searched using AND/OR combinations of tags, also in combination with other criteria. Tagging is generally fast, needing a few seconds per image. Fotocx has two methods of adding tags, a "managed" system and a "random" system. In the managed system, you define tag category names and the tags within each category. When adding tags to images, you can point and click from a list of tags organized by category and alphabetically within category. In the random system, you simply create tags as needed while you tag your images, following no particular system and without categories. When you enter the first few characters of a tag, existing tags that match these few initial characters are shown in a pick-list which you can click to complete adding the tag. If there is no match, a new tag is created. Recently used tags are also shown in a list that can be clicked. Photos made at the same time will normally be tagged in sequence, and will also share many of the same tags. The recent tags list helps to speed the tagging process. Use Batch Add/Remove Tags to add the same tags to many images. Batch Rename Tags can be used to rename tags in selected (or all) images. Tags can be searched in combination with other search criteria such as a date range or location(s).
Note that images downloaded from the Internet may have many tags adhering to no system. You will need to clean these out or redo them to stop them from cluttering your list of defined tags. If you see undesired tags in your list of defined tags, it is easy to find the offending image files and purge or change their tags: use the Search Images function to find the images, using the unwanted tags as search criteria, and feed this list to Batch Add/Remove Tags or Batch Rename Tags. Tags from downloaded files will have no category, which keeps them separate from tags you define (if you are using the managed tags method). Still, you should avoid accumulating thousands of random tags, and it is easy enough to get rid of them whenever they appear.
^Geotags
Use geotags to assign a city or location and country to your images, and optionally latitude/longitude. This enables all images for a location to be quickly found. If you use a camera with a GPS receiver, geotags are added to the image EXIF data, and location searching is available automatically. Since
image dates are also automatic (in EXIF), images can be searched by date range and location without you having to enter any data for each image. You can leave it at this, or add some of the above extras if you accept the extra effort required. My experience so far with in-camera GPS is that the location names are chaotic and you may want to sanitize them (mixed upper/lower case, with/without states or other subdivisions, mixed languages, etc.). You can fix the mess with a little effort: search for the location name you want to change (e.g. MUENCHEN, BAYERN, DEUTSCHLAND), then process the resulting images with the {BATCH GEOTAGS} function to change location names (e.g. Munich, Germany). Location names can be searched in any combination.
When you add geotags to an image manually, it is usually sufficient to enter just the city or location name and then press [Find]. If the location has been entered sometime in the past, it will be recalled and all geotag data will be filled-in automatically (city/location name, country, latitude, longitude). This will also work if only a few characters of the name is entered, e.g. "hono" will recall the data for Honolulu, if available. When a location is entered for the first time, enter the city or location name and country, and press the [Lookup] button. The location coordinates are found from an internal table. If still not found, you can use Wikipedia or other web service to find the location coordinates and enter them manually.
Images with geotags are also searchable by clicking markers on a world map. The markers are automatically added to the map for all images containing geotag coordinates. The map can be zoomed to any scale from street-level to planet level.
^Albums
Another method of organization is to use Albums. Choose a name for each album and assign any desired images to the album by clicking thumbnails in gallery pages. The images are not duplicated: the album is simply an ordered list of file names. Albums can be selected by name and viewed as a gallery of thumbnails. These can be rearranged via thumbnail drag and drop. The images can then be viewed sequentially using keyboard arrow keys, randomly by clicking thumbnails, or as a slide show with animated transitions between images. Albums are also implemented in some other photo management apps, but each one is different and incompatible.
The image search function can be used to find images to start a new album, and then images can be added, removed, and rearranged as needed. Images can be added simply by clicking gallery thumbnails as you browse your image collection.
^Summary
The following is a summary of some ways to organize a large image collection, with factors to consider when choosing which methods you want to use. In the list below, "search by" specifies which search criteria can be used with each option. Many of the methods below can be combined, and the possible search criteria increases accordingly. Searching by folder and file name and by photo date (EXIF) is available with any organization.
Images Organized by Topic
• images are in a topic-named folder (a very common practice)
• e.g. /.../Susan 8th birthday/P0123456.jpg (file names from camera)
• e.g. /.../Paris 2014/Notre Dame 12.jpg (meaningful file names)
• fast implementation: no work if this is your starting point
• Gallery View is by topic only (poor overview if very many topics)
• search by: topic (using file names)
• no overview of available search topics
Images Organized by Year and Topic
• e.g. /.../2014/Italy/Rome-12.jpg
• e.g. /.../2014/Susan Wedding/P123456.jpg
• fast implementation: move your topic folders into year folders
• Gallery View by year and by topic within year
• search by: topic (using file names)
• no overview of available search topics
Images Organized by Year, Month, Day and Topic
• e.g. /.../2014/08.22 Rome-12.jpg
• use Batch Convert to format new names from existing image files
• natural grouping of related images
• gallery overview by year, in time order, with topics visible
• search by: topic (using file names)
• no overview of available search topics
Image Folder and File Names Contain Topics
• e.g. /.../travel/2014/Italy/Rome-Susan-Coliseum.jpg
• many folks have done this, to search using a file search utility
• you may end up with hundreds of galleries with a few images each
• search by: topic (using folder and file names)
• no overview of available search topics
Titles and Descriptions
• e.g. "Susan 2014, Coliseum in background"
• simple and easy to use
• moderately fast implementation: 10+ seconds per image
• risk inconsistent names, unreliable search (e.g. search "Rome" fails)
• search by: title and description (any contained word or words)
• no overview of available search topics
Managed Tags
• e.g. "Rome, Italy, Susan, birthday"
• point and click in a tag list to add tags to images
• tags have categories for faster visual location of tags to click
• typing a few characters is usually enough to retrieve a defined tag
• recent tags are also available for easy re-use while tagging images
• no inconsistent or redundant tags, no typos to make searches unreliable
• requires careful planning of tags - later revisions are cumbersome
• batch add/delete/rename is available for tag revisions
• search by: tags in any combination
• good overview of available search topics (tags organized by category)
• tag categories are not standard and will not be visible in other apps
Random Tags
• no tag organizing system, tags created as needed while tagging images
• legacy tags can be kept unchanged
• typing a few characters can retrieve a tag that has been used before
• recent tags are also available for easy re-use while tagging images
• risk inconsistent tags (scenery/landscape) and typos (scnery)
• search by: tags in any combination
• overview of search topics: one large pile of tags in alphabetic order
Geotags
• e.g. Rome, Italy, 41.89 N, 12.48 E
• cameras with GPS store this data automatically in images
• you can manually add locations (5-10 seconds per image)
• you can {BATCH GEOTAGS} many images at a time
• inconsistent location names from cameras (fixable with effort)
• map markers are generated automatically from image geotag data
• search by: location (city, park, monument ...) and country
• click on a map marker to show a gallery of images at location
Albums
• album names like this: favorites, best scenery, Italy 2014, Susan
• albums are a list of contained image files, which are not duplicated
• make albums using any criteria, containing any images
• images can be in multiple albums or multiple times within an album
• images can be arranged in an album by dragging thumbnails to position
• add images by selecting / dragging gallery thumbnails to album gallery
• albums are the basis for the slide show function
• overview of available albums - click on album name to view gallery
• albums are only usable within Fotocx (there is no standard for albums)
TOPIC: PRIVACY
^Summary: Fotocx does not collect or share personal data.
^Image Metadata
To enable fast image searching based on metadata, Fotocx saves key image file metadata separately from the image files themselves. This is within your own computer and not accessible to others unless you allow this. If your images have greater security needs, consider using security tools to block malware, prevent intrusion through the network, and restrict access to sensitive files.
If you upload your image files to a web application (e.g. Facebook, Instagram), embedded metadata is exposed to the web application and others who download your images. For example, others could find out where you have been and at what time, from GPS metadata inserted automatically into your photos by your camera, or added later using Fotocx or other tools. To prevent this, you can use Fotocx to clear metadata from images before uploading them. See {DELETE META} and {BATCH CONVERT}.
^Your Public IP Address
If you download a Fotocx installation package from the Fotocx hosting web server (kornelix.net), your IP address will remain in the server log files up to one month. Your internet service provider can identify you from this IP address. Normally this is restricted by law to authorized government agents.
More information:
^https://gitlab.com/fotocx/fotocx/-/wikis/privacy
TOPIC: PROBLEM REPORTING
If something does not work, or if Fotocx crashes, there are two ways to clarify the problem or provide information for the Fotocx author to fix the problem. These are the Fotocx activity log file and the crash report file. These are ordinary text files which can be sent to the Fotocx author by e-mail: mkornelix@gmail.com. If you do this, it would be helpful to describe what you were attempting to do when the problem happened. My best chance to fix the problem is when I can reproduce it. Send the problem image file also, if this is relevant.
TOPIC: LOG FILE
Fotocx outputs an activity file or log file which traces user and program actions. The level of detail can be set by the user (see {SETTINGS}). You can view this file during a Fotocx session using the menu Help > Log File. The file is replaced with each new Fotocx startup. To view after a Fotocx session: $ cat $HOME/.fotocx/fotocx*.log. If you are having problems with a particular image file, you may be able to get some clarification by looking in the log file. Programs used by fotocx, such as exiftool and libtiff, write error messages to this log file. If a particular image file is causing a problem, I suggest you move this file to your blacklist folder to stop it from making problems.
If Fotocx crashes, it is usually able to produce a backtrace dump before exiting. This is a file named "zappcrash". Fotocx adds this file to the Log file and copies them to your $HOME folder to make them easier to find. Look for "fotocx-*.log" in your home folder and send this to mkornelix@gmail.com.
TOPIC: QUESTIONS, SUGGESTIONS
If you have a question or a suggestion for improvement, you can contact me by e-mail: mkornelix@gmail.com
TOPIC: TECHNICAL TOPICS
Additional technical topics can be found on the Fotocx web site: ^https://kornelix.net
TOPIC: FOTOCX LIMITATIONS
• 1 million indexed image files - Fotocx has been tested with 680K files.
• image size - The max. supported image width or height is 50K pixels.
The maximum practical image size is 400 megapixels (6.4 GB memory).
(images edited in memory use 4 floats (16 bytes) per pixel, RGBA).
• image versions - up to 99 versions for undo/redo and version naming.
• image tags - 10K total tags. 1000 characters for a single image.
These are compile time limits and could be easily increased.
• Galleries are generally limited to 100K image files, so you should not
have folders containing more than 100K files. The gallery size limit
can be less than 100K if the currentl thumbnail size is larger than
256 pixels. Gallery size limits also apply to search results, albums,
and reports. You are notified with a popup message if a gallery is
truncated. The limits for 360 and 512 pixel thumbnails are 64K and 35K
files respectively.
TOPIC: RUNNING OUT OF MEMORY
Fotocx can require a huge amount of main memory to edit a large image. A 20 megapixel image requires 640 megabytes for the simplest edits, and much more for complex edits. Images in memory are not compressed. Each image pixel is represented by four 'float' numbers (16 bytes total) for red/green/blue/alpha. HDR, Panorama and other combine functions hold all images in memory during alignment and post-process tuning. If you push the memory limits on a small PC, the Linux kernel may kill the Fotocx process without warning and with no message (this is to keep the operating system itself from crashing). What you see is that the Fotocx window vanishes. Fotocx tries to anticipate when it is about to run out of memory, and makes a graceful exit with a popup message. This is not always successful. If the Fotocx window vanishes, check the log file after restarting, and check for the message "killed", which is all you get from the Linux OS.
Fotocx memory footprint
• View 30 megapixel image 324 MB
• Retouch 30 megapixel image 670 MB
• Rotate 30 megapixel image 980 MB
• Rescale (down) 30 megapixel image 1.4 GB
• Local Retinex 30 megapixel image 3.5 GB
• Panorama, 50 megapixel output 4.8 GB
Bottom line: If you edit large images, you need a minimum of 8 GB of main memory, and 16 GB is recommended. If Fotocx exceeds physical memory and requires the swap file during processing, this may work acceptably, may get killed by the OS, or may take so long that you give up and kill the process yourself.
TOPIC: RUNNING OUT OF DISK SPACE
During a series of image edits, each edit step is saved on disk, and the before/after results can be viewed with the Undo/Redo button. These images use 32-bit floating point numbers for color values and are not compressed. A 30 megapixel image makes a 480 MB file. If there are 10 edit steps in the undo/redo stack, the required disk space is 4.8 GB. If disk space runs out during an edit session, the program terminates with a message. To avoid this, be sure there is plenty of disk space wherever your Fotocx home folder resides. When you open a new image or quit Fotocx, the disk space is recovered. If Fotocx crashes, the space is recovered the next time Fotocx is started.
TOPIC: SYMBOLIC LINKS
Symbolic links are supported in a limited manner. Take the time to understand these limits if you are using symbolic links. This is complicated, and it is easy to make mistakes if you are not aware of the pitfalls.
The image index and thumbnail files are only created and maintained for the real path. For a given image file, only one index entry and thumbnail can exist. If a symlink path is used to access and modify an image file, the symlink is converted into a real path before use. If a new file version is created, it will exist in the same real path as the original file. If there is a symlink to a parent folder of the original file, the new file version will also exist in that same path, just like the original file. If the symlink is direct to the file that was modified, and a new version is created, the new file version will be only in the real path of the original file. No parallel symlink is created like the one that links to the original file. On that path, only the original file is visible.
The Image Search function finds real paths only.
Symlinks direct to an image file may have no extension or a misleading extension (e.g. /.../filename.png links to /.../filename.jpg). Technically, this works because the real path is used to choose the library function to read and write the file.
Good advice: never use symlinks direct to image files - use folder links only (and this should also be avoided because you will some day outsmart yourself and make a catastrophic error).
^Hard Links
Fotocx does not know about these and processes them like normal folders or files. The result is that duplicate index entries and thumbnails are created. If an image file having multiple hard links is modified in Fotocx, only the index entry and thumbnail for the access path that was used is updated. Others become invalid.
TOPIC: PREVIEW MODE
Some edit functions use a reduced image size for a faster interactive response time. This is shown on the top panel as "(reduced)". When [done] is pressed, the full-size image is then processed. This is why [done] sometimes takes noticeable time. An image sized for the monitor (2-4 megapixels) is much faster to process than a 20+ megapixel image (the original camera file). This method is used whenever the preview edits can be applied to the full-size image without visible impact (e.g. Crop, Rotate, Warp, and all brightness and color related functions). It cannot be used for some other functions (e.g. sharpen, amplify contrast) because the results cannot be rescaled for a larger image.
TOPIC: SUPPORTED FILE TYPES
Fotocx uses Linux library functions to support reading and writing of image files: the GDK pixbuf library, libjpeg, libpng, libtiff. The file types that can be read and written include JPG/JPEG, PNG, and TIF/TIFF. Three RGB colors with 8 bits per color are supported for all types. PNG and TIFF also support 16 bits per color and an alpha channel (opacity level). Fewer than 8 bits per color and grayscale images are partly supported, and are converted to RGB internally. Some other file types are partly supported: they are indexed and thumbnailed and can be viewed and edited normally, but modified files are saved as .jpg files with a version number. These file types are: .heic .webp .jp2 .avif. Adobe files (.pdf/.ps/.eps/.psd) can be converted into jpeg image files using the function {CONVERT ADOBE}.
TOPIC: INDEX DATA FILES
These files can be found in the folder <fotocx-home>/image_index_*/
image_folders: a list of the top image folders and the thumbnails folder
image_index: image file pathnames and indexed metadata items
meta_index: optional metadata items that have been added to the image index.
TOPIC: COLOR DEPTH ISSUES
8-bit color (256 brightness levels), as supported by JPEG files, is the norm for image files and is generally adequate. A difference of one brightness step (0.4% of entire range) cannot be seen. A greater color depth than 8 bits can be useful if some part of the brightness range in an image has been greatly expanded by editing. This can lead to visible "banding" or "posterization". If the RAW image is edited instead of the JPEG (and if the RAW image really has more than 8 bits of low-noise color), this problem can be reduced, even if the edited image is converted back to JPEG for final storage. Currently, only expensive cameras with large sensors produce RAW files with more than 8 bits of low-noise color at normal exposure levels (ISO <1000).
The image below changes gradually from black to white. The color depth is 6 bits (64 brightness levels). The brightness steps are barely visible.
+image: brightness-steps.png
TOPIC: NOISE MEASUREMENT
This is how the {DENOISE} function measures the noise level of an image file. An area of radius 10 pixels around the clicked position is sampled. The RGB brightness levels reported (0-255) are the averages for this area. Within this area, every pixel is measured and compared with the mean of the surrounding 5x5 block of pixels. The RGB noise levels reported are the average differences. If the sampled area has a small gradient in brightness, the measurement is not sensitive to this. If a RAW image is measured, a 16-bit TIFF made from the RAW is used. The graph scale is -10 to +10 and the dotted lines are at -5 and +5. These values are relative to a total brightness range of 0-255. Noise in the 9th or 10th bit would be 0.5 or 0.25 on this scale. The accuracy of this method depends on selecting a "flat" image area such as a badly out of focus area or a very uniform area like a gray cloud. Inspect the image at 400% magnification to be sure you are seeing noise and not real image texture.
TOPIC: RAW IMAGE NOISE
You may be surprised at the typically high noise levels in RAW images. Cameras filter out this noise when making a JPEG image. Expensive cameras with large sensors may have more than 8 bits of low noise color, especially if the image is well exposed at low ISO levels. The bit-depth claims are exaggerations, since noise will predominate at the deeper bit levels. When you use Fotocx or any other tool to filter noise from a RAW image, you are competing with the camera maker's electronics and software used to produce the camera JPEG. It might be a challenge to do better.
TOPIC: SLIDES AND NEGATIVES
It is quite easy to capture slides or color negatives and create images with good color. The initial image can best be captured with a slide scanner. You can also use a camera, especially one that can focus very close to create a large enough image (>1000 pixels). Many consumer cameras with zoom lenses can do this. Use a light box to illuminate the slide or negative. Lacking this, you can use a blue sky as the light source (example below). A slide photo may need minor color adjustments. To process a color negative, you must first make a positive ({COLOR MODE}). The result may be already good. If the image is foggy, select the image only, excluding the film edges, and then use {GLOBAL RETINEX} to eliminate the fog. Set the white and black points by clicking on the image if needed to further reduce fog. The result is usually good, but you can still tweak the Retinex controls to fine tune the color if needed. The image here was hand held to photograph, and the single image frame was selected for processing.
+image: color-negative.jpg
TOPIC: HIGH QUALITY IMAGE UPSCALE
+image: upscale+sharpen.jpg
Here is a method to upscale an image by 2x while retaining the best quality (minimize jaggies and blur). The left image is a cutout from a 2x upscale of a NASA image of an asteriod. The upscale has added jaggies to high-contrast feature edges and increased blur everywhere. The right image was made with two more edits: Anti-Alias (1 iteration) cleaned up the jaggies. The image was then sharpened using the Richardson-Lucy method (radius 1.4, iterations 4).
TOPIC: ROTATE PERFORMANCE
Interactive rotations (via mouse drag or the [degrees] spin button) update the image 20 times per second or more. Two special methods are used to recalculate the rotated image faster: (1) a smaller image is used, which is scaled up to full size when the [OK] button is pressed. (2) a fast rotate method is used having lower image quality, followed by a high-quality method applied one second after all image rotation motion has ceased. If you zoom the image to 2x or more and use the spin button to rotate the image, you can see pixelation on sharp feature edges which disappears in one second.
TOPIC: ALIGNMENT ALGORITHM
Combined images for panorama, HDR, etc. must be accurately aligned to avoid fuzziness in the output image. Relatively few high-contrast or "feature edge" pixels are used to control alignment. These pixels are shown in red during the alignment process, which is also more entertaining. Each image in succession is systematically warped various small amounts and the fit with other images is tested. This is done because two photos made with slightly different horizons or rotations will not fit perfectly with simple translation and rotation. Also camera lenses are not geometrically perfect.
TOPIC: ALPHA CHANNELS
Images having alpha channels (transparency information) can be edited, and the alpha channel is preserved if the image is saved as a PNG or TIFF file. JPEG files do not support alpha channels, and transparent areas are black when saved as JPEG.
TOPIC: IMAGE DETERIORATION FROM REPEATED EDITS
If you save an edited image file and then use this file later to perform additional edits, pixel resolution may be lost. It is better if you do all edits when the image file is first processed, to minimize image deterioration (or go back to the original if you still have this). Any function that changes image size or shape will reduce resolution about 1/2 pixel. These are rescale, rotate, warp, and all combine functions. Rotating 90 degrees does not affect resolution. When downsizing an image, using ratios 1/2, 1/3, 1/4 will give the best resolution. Functions that change brightness and color do not affect resolution.
TOPIC: INTERPOLATION METHOD
+image: interpolation.png
When an image is rescaled, rotated, or warped, the resulting output pixels must be "interpolated" from corresponding input pixels. In the illustration above, the large red box represents an output pixel in an image downsized to about 1/3 size. The small black boxes represent the input pixels contributing to the output pixel. The output pixel is overlayed over its input pixels, with the red dot marking the center of the output pixel. The most common method of constructing the output pixels is "bilinar interpolation". In this method, 4 input pixels (A/B/C/D) near the center of the output pixel are mixed to provide the RGB alues of the output pixel. The weight of each input pixel is inversly proportional to its distance from the center. Note that the nearest input pixel, the one with the red dot, is not included. The results are OK for small changes of scale (about 1/3 to 3x) and increasingly worse for large changes. Fotocx uses a more precise method that works for any scale. ALL input pixels contribute to the output pixel (16 in the example). Their weights are proportional to their area of overlap with the output pixel. This is not as fast as bilinear. Multiple execution threads are used for maximum speed. On my strong computer, downsizing a 200 megapixel image to 1/4 size takes about 0.24 elspsed seconds, so not a problem here. A slower computer could need a second or more for this.
TOPIC: JPEG COMPRESSION
If a JPEG file from a digital camera is saved with Fotocx, you will likely notice a large reduction in file size, even if a high JPEG quality level is used. This is because Fotocx can afford to invest more processing power in the compression. A camera CPU is not very fast and must save an image quickly to be ready for the next photo, so the processing time available for compression is limited. The CPU of a typical PC is much faster and has more time, so the compression level is higher. The smaller file size does not mean that the quality is less.
TOPIC: JPEG IMAGE DETERIORATION
Reading a compressed JPEG image and saving it again can lead to loss of detail and increased image artifacts. The effect seems to be negligible if JPEG "quality" is set to a high value when the image is saved. The image below was saved 10 times using quality=90 (Fotocx default), each time opening and saving the previous image file. There are small differences in the RGB values but they cannot be seen. The images are 1x size and the small cutouts are 3x.
+image: jpeg-quality.png
TOPIC: METADATA ERRORS
Cameras (esp. older ones) do not always produce structurally correct metadata, and the program exiftool (used by Fotocx to manipulate metadata) may produce error messages. I have been able to fix these cases by saving the image file over itself, which replaces the metadata with whatever exiftool was able to read correctly. If desired metadata gets lost, you can restore it manually using the Edit Any Meta function.
I have encountered some metadata (image descriptions, captions) with invalid utf8 characters. Invalid characters are automatically replaced with '?'.
TOPIC: NEWLINE CHARACTERS IN METADATA
When editing metadata image descriptions, if you need to align text columns, you can use the [enter] key to force new lines. These are converted to backslash + 'n' before being stored in image metadata, since newline characters are not allowed (they are converted to periods). If the text is viewed or edited again, these substitutions are converted back to new lines, so that the original text alignments are restored. THIS IS NOT STANDARD, so don't expect the text to remain aligned if viewed with other image viewers. If this is a requirement, then don't use the enter key to make new lines when entering long text - just let the text overflow to the next line by itself. In this case, column alignment is not possible.
TOPIC: DIALOG WINDOW POSITIONING
For commonly used dialogs, Fotocx saves the dialog window position (relative to the main window) and tries to restore the same position the next time the dialog is used. This works, mostly. Sometimes the window manager decides some other position.
TOPIC: FOTOCX PERFORMANCE
Fotocx was written in C/C++ for maximum execution speed. Every effort was made to develop fast algorithms. Classic methods were sometimes compromised to attain greater speed, but not if results are compromised. Time-consuming algorithms use multiple threads for greater speed. Using a fast CPU with many SMP cores is therefore important for performance.
Fotocx has four significant performance limitations:
• Indexing new image files found at Fotocx startup time
• Startup time for a large image database on a slow disk drive
• Search time for non-indexed metadata
• Editing very large images (>100 megapixels)
At startup time, Fotocx searches all declared top image folders to update thumbnails and the metadata index. The processing speed for NEW image files can range from a few hundred files per minute for a slow computer and slow spinning disk, or >20K per minute for a fast computer and fast SSD disk. "NEW" means any file that was added or modified (not by Fotocx) since the last time Fotocx was started. File size is also a factor: large RAW files (20-50 MB) are much slower than ordinary JPEG files (1-5 MB).
The search for new image files needs time, even if there are no new files to process. The speed can range from 8K files/sec. for a slow spinning disk, or >20K/sec. for a fast SSD disk. This is for the first Fotocx startup after a computer reboot. Subsequent startups are about 2x faster, because some folder and file data is cached in memory. You can omit the automatic search for new files if wanted, to keep Fotocx startup time under 1 second (see {SETTINGS}). Use this option for files selected in a file manager (Nautilus etc.), to display the file instantly.
Searching for metadata that is indexed is almost instantaneous. Metadata that is often used for searching (e.g. tags, locations, image titles) is indexed by default, and you can add other items if wanted (see {INDEX FILES}). The search speed for non-indexed metadata can range from 3K to >100K files/minute, depending on computer and disk speed. For 100K files on an SSD disk, searching for non-indexed metadata needs 1-2 minutes, whereas searching for indexed metadata is under 1 second. Metadata items you need to search often should be included in the list of indexed metadata.
Fotocx can edit images up to about 400 megapixels if sufficient memory is available. On a strong computer, response time for most edit functions is below 1 second for images up to 30 megapixels or so. Beyond this, expect responsiveness to decline.
^Benchmarks
Computer: 6 P-cores + 8 E-cores, 4 GHz
Disk: HDD (5400 rpm) and SSD (>1 GB/sec)
Image files: 72K files, 183 GB
^Test HDD SSD
full image index 83 min 208 sec
initial startup -x1 5.5 sec 1.0 sec
subsequent startup 0.4 sec 0.4 sec
initial startup -x2 8.0 sec 3.3 sec
subsequent startup 2.3 sec 2.3 sec
initial metadata search (*) 19 min 30 sec
subsequent search 28 sec 28 sec
Subsequent tests are faster because file data from the initial test is cached by the OS and is accessed much faster.
-x1: without search for new or modified files
-x2: include search for new or modified files
(*) Non-indexed metadata. Searching for indexed metadata is normally less than 1 second.
Index, startup, and search times are nearly proportional to the number of image files, e.g. double the files means double the time.
TOPIC: E-CORES AND HYPERTHREADS
E-cores are marginally useful for Fotocx. Hyperthreads seem to be useless. Enabling E-cores (BIOS setting) added about 32% to indexing performance on my computer with 6 P-cores and 8 E-cores. Enabling hyperthreads added nothing more to this. The constant NSMP (set in fotocx.cc) determines the number of threads Fotocx uses for CPU-intensive functions.
TOPIC: FOTOCX PACKAGES
This is where Fotocx installs its files:
Source package ($ sudo make install)
/usr/bin/ executable file (fotocx)
/usr/share/applications/ desktop file
/usr/share/fotocx/ user guide, images, default data
/usr/share/doc/fotocx/ change log, license, copyright
/usr/share/man/man1/ man page
Binary package ($ install.sh)
$HOME/.local/bin/ executable file (fotocx + fotocx.x)
$HOME/.local/share/applications/ desktop file
$HOME/.local/share/doc/fotocx/ change log, license, copyright
$HOME/.local/share/fotocx/ user guide, images, default data
$HOME/.local/share/fotocx/lib/ some library files for portability
The binary package is a distro-agnostic package which includes some libraries used by Fotocx, but only those likely to vary depending on Linux flavor and release date. This package should run OK on most recent flavors of Linux. If it fails to start, check the log file for missing library files and install them using your package manager. Start Fotocx from a terminal to see the log file.
TOPIC: FOTOCX HOME FOLDER
• Fotocx Home: folder for user preferences, settings and general data
• Default Fotocx home location: /home/<user>/.fotocx/
• If Fotocx home was moved (see {MOVE FOTOCX HOME}), the file
/home/<user>/.fotocx-home contains the location of Fotocx home.
• The files in Fotocx home are preserved across a new release of
Fotocx, but some may be replaced for compatibility reasons.
^Files in Fotocx home
albums/ image albums from Manage Albums function
custom_kernel/ saved custom kernel data files
custom scripts/ saved script files for custom edits or batch edits
image_index_*/ top folders, thumbnail folder, image index file
image_array_maps/ saved image array maps (embedded image locations)
markup/ saved text strings for markup->draw text
mashup/ saved mashup project files
palettes color palettes used by the Dither function
patterns/ saved background patterns
printer_color/ saved printer color calibration files
retouch/ saved settings for the Retouch function
saved_areas/ files saved from Select Area > Save dialog
saved_curves/ saved node points for saved edit curves
saved_searches/ saved settings for the Search Images function
slideshows/ user settings from Slide Show function
slideshow_trans/ saved slide show transition parameters
temp/ temporary files for current sessions
thumbnails/ thumbnail files (default location)
blacklist list of files with internal errors - not usable
bookmarks bookmark names and image file locations
capskeys_* metadata keys for captions shown at top of image
CIE1931.jpg color selection palette for Paint Image function
custom_menu_* list of functions included in custom user menu
drag_from_folder memory for 2 Fotocx processes to drag/drop files
folder.png optional: customize gallery folder icon
fotocx-NN.N.log activity log - relevant for diagnosing problems
gallery_memory saved sort order and position for gallery windows
KB_shortcuts_* user-defined keyboard shortcuts
meta_picklist_* metadata key names for GUI pick lists
meta_report_items metadata items reported by Batch Report Meta
meta_view_extra extra custom items for the metadata short report
map_regions_* saved map regions in world map view
pagesetup saves page setup data for print image function
parameters parameters that are saved across Fotocx sessions
plugins_* saves the plugins menu contents
printsettings saves print settings data for print image function
raw_commands_* saved raw image processing commands
recent_files list of the last 1000 files opened by Fotocx
recent_topics recent topics viewed in the user guide
search_results output of image search function, list of files
slideshow-tone.oga a short music tone for slide show (freedesktop.org)
tags_defined list of all categories and tags currently in use
userguide text file copy of user guide without images
wallpaper Fotocx wallpaper tool - last used wallpaper file
widgets.css styling changes to standard GTK widgets
worldcities.txt geocoordinates for all significant world cities
zdialog_geometry saved dialog window positions
zdialog_inputs saved dialog data to recall prior inputs
TOPIC: IMAGE METADATA USAGE
The following metadata items (stored inside image files) are used by Fotocx. These items (like any metadata) can be viewed or edited using Fotocx. Images can be searched using these items (or any metadata) as selection criteria. Those marked "indexed" can be searched very fast, others more slowly.
^Metadata section and name Usage Source Indexed
IPTC Keywords tags (keywords) user yes
IPTC Rating 0-5 stars user yes
IPTC Title image title user yes
IPTC Description image description user yes
IPTC Creator photographer, author user no
EXIF ImageSize pixels, e.g. 12345x6789 auto yes
EXIF DateTimeOriginal date/time photo was made camera yes
EXIF ImageHistory history Fotocx edits Fotocx no
EXIF FocalLengthIn35mmFormat* panorama camera no
EXIF City, Country city/location, country camera* yes
EXIF GPSLatitude/Longitude earth coordinates camera* yes
EXIF RollAngle camera tilt angle camera no
(*) camera - camera GPS, or added by user
(*) FocalLengthIn35mmFormat - 'FocalLength' in some cameras
TOPIC: FOTOCX SOURCE CODE
The C++ source code is in the source package at ^https://kornelix.net^. The code is heavily commented in the hope that others can understand and use the code for their own projects. If you have a technical question about how something works, or a better idea to pass along, you may contact me: mkornelix@gmail.com.
TOPIC: FOTOCX FOR WINDOWS 11
The starting point is Windows with WSL2 and some Linux flavor installed (e.g. Ubuntu). This is done entirely within Windows. Instructions for installing Fotocx can be found here:
^https://kornelix.net/fotocx_topics/win11/install.html
Fotocx on Windows 11 (with WSL2) is usable with limitations. Performance is very slow for startup, indexing, gallery display, and image search. Image edit functions, which are CPU bound, run about as fast as on native Linux. The poor file performance comes from the Windows NTFS file system (or its interface to the Linux VM). If you use the Linux file system included in WSL2, the performance will be fine, and these files are also usable in Windows. This makes Fotocx on Windows a reasonable proposition for those with some courage and technical knowledge. The downside is having to move your image library to the Linux file system (but Windows access is NOT impared).
TOPIC: ACKNOWLEDGEMENTS
Some methods were adapted from "Introduction to Image Processing and Analysis" by Russ and Russ. Other libraries and utilities used by Fotocx include libgtk, libjpeg, libtiff, libpng, libchamplain, liblcms, dcraw, exiftool, and many others available with Gnu/Linux. Development was started in 2008. Many users have contributed ideas and help with testing and debugging. As of 2024 Fotocx has about 113K lines of C/C++ code. The primary author is Michael Cornelison.
TOPIC: ALL TOPICS INDEX
{ACKNOWLEDGEMENTS}
{ADD NOISE} - add random noise to an image
{ADD SUBFOLDER} - add new subfolder to existing image folder
{ADJUST HSL} - select and change colors using HSL colors
{ADJUST RGB} - adjust image colors using RGB or CMY colors
{ALBUM MASS UPDATE} mass update of multiple album files
{ALIEN COLORS} - add random strange colors to an image
{ALIGNMENT ALGORITHM} - how images are aligned (panorame, HDR, etc.)
{ALL TOPICS INDEX} alphabetical index of all topics in this document
{ALPHA CHANNELS} - how alpha channels are handled
{AMPLIFY CONTRAST} - amplify existing contrast to enhance details
{ANTI-ALIAS} - suppress pixelation (jaggies) along feature edges
{AREA BLEND} - mouse-blend edits made within a selected area
{AREA FILL} - fill selected areas or transparent areas with a color
{AREA OVERVIEW} - select area - concepts and usage
{AUTOSEARCH} - scripted Search function to find files
{BATCH CHANGE META} - add or revise metadata for selected image files
{BATCH CONVERT} - copy, move, rescale, rename, convert, add text ...
{BATCH COPY/MOVE} - copy/move selected image files to a new folder
{BATCH DELETE/TRASH} - delete or trash selected image files
{BATCH GEOTAGS} - add or revise geotags for selected or all image files
{BATCH MENU}
{BATCH MOVE META} - move metadata between keywords - standardize usage
{BATCH OVERLAY} - add overlay image (copyright ...) to selected images
{BATCH PHOTO DATE} - change photo dates or times, or shift time zone
{BATCH PROCESSING} - overview of batch processing functions
{BATCH RAW} - convert RAW files to JPEG/PNG/TIFF, 8 or 16 bit color
{BATCH RENAME TAGS} - rename tags for selected or all image files
{BATCH REPORT META} - report metadata for selected or all image files
{BATCH SCRIPT} - execute script on selected image files
{BATCH TAGS} - add or remove tags for selected image files
{BATCH UPRIGHT} - scan for rotated image files and upright them
{BLANK IMAGE} - create blank image with specified size and color
{BLUR} - blur an image or image area, multiple methods
{BOOKMARKS} - view list of bookmarks, go to bookmark
{BRIGHTNESS RAMP} - add a brightness/color ramp across an image
{CALIBRATE PRINTER} - calibrate printer color - compensate color shifts
{CAPTIONS} - show file name, title, description in image corner
{CARTOON} - convert an image to a cartoon-like drawing
{CHANGE ALPHA} - add or remove alpha channel for an image file
{FRINGES} - fix pheripheral color fringes (chromatic aberration)
{CLEAR AREA} - remove an area
{COLLECTION MANAGEMENT} - collection management and image searching
{COLOR DEPTH ISSUES} - meaning and limitations
{COLOR MODE} - convert to black & white, color, negative, positive
{COMBINE MENU}
{COMMAND PARAMETERS} - Fotocx command line parameters
{CONVERT ADOBE} - convert Adobe files (.pdf/.ps/.eps/.psd) to jpeg
{COPY FROM IMAGE} - copy pixels from another image using the mouse
{COPY IN IMAGE} - copy pixels within an image using the mouse
{COPY META} - copy metadata from one image file to another
{COPY/MOVE} - copy or move an image file to another folder
{COPY/PASTE AREA} - copy an area or paste area into current image
{COPY PRIOR EDIT} - copy pixels from prior edits using the mouse
{COPY TO CLIPBOARD} - copy an image file to the clipboard
{COPY TO DESKTOP} - copy an image file to the desktop
{CROP} - crop (trim) image margins
{CURRENT FOLDER} - open Gallery View from current image file
{CURVE EDITING} - how to manipulate curves used in edit functions
{CUSTOM DIALOG WIDGETS} - how to use custom dialog widgets
{CUSTOM KERNEL} - edit and apply a custom convolution kernel
{CUSTOM MENU} - custom user menu for frequently used functions
{CYCLE 2 FILES} - cycle through the two most recently seen image files
{CYCLE 3 FILES} - cycle through the three most recently seen image files
{DARK/BRIGHT PIXELS} - tool to highlight clipping
{DEFOG} - add or remove fog/haze from an image or selected area
{DELETE META} - delete specified metadata or all metadata
{DELETE/TRASH} - delete or trash an image files
{DENOISE} - reduce image noise (small random specks)
{DIALOG BUTTONS} - dialog completion options
{DIALOG WINDOW POSITIONING} - description
{DITHER} - different ways to pixelize or posterize an image
{DRAG AND DROP} - file drag and drop methods
{E-CORES AND HYPERTHREADS} - how useful are these?
{EDIT ANY META} - edit any metadata (add, change)
{EDIT BOOKMARKS} - add, remove, arrange bookmarks
{EDIT HISTOGRAM} - edit brightness histogram for better detail
{EDIT MAIN META} - edit commonly used metadata
{EDIT MENU}
{EDIT PROCEDURES} - how to edit image files
{EDIT SCRIPT} - record edits in a script to make a custom edit function
{EDIT TEMPLATE} - coding template for new edit functions
{EDIT WORKFLOW} - alternative edit methods - simple and complex
{EFFECTS MENU}
{EMBOSS} - convert an image to a simulated embossing (3D effect)
{ENABLE/DISABLE AREA} - enable or disable an area for editing
{ENGRAVE} - convert an image into black & white lines
{ESCHER SPIRAL} - transform an image into an endless inward spiral
{EXPORT FILE LIST} - make a list of selected files (e.g. shell script)
{EXPORT FILES} - export selected files to a folder (e.g. web upload)
{FILE MENU}
{FILE SAVE} - save image file (replace, new version, new file name)
{FILE VIEW} - File View window (view single image file)
{FIND AREA GAP} - find gap in hand-drawn area outline
{FIND DUPLICATES} - find duplicate images in a gallery or all images
{FIRST INDEX} - locating and indexing image files for fast searching
{FIRST STARTUP} - information for Fotocx first startup
{FIX META} - repair malformed metadata preventing metadata edits
{FLATTEN HISTOGRAM} - flatten brightness histogram for better detail
{FLATTEN PHOTO} - flatten a photo of a curved surface
{FOLDER TREE} - show all image file folders in a tree structure
{FOTOCX CAPABILITIES} - summary of Fotocx functions and tools
{FOTOCX FOR WINDOWS 11} - installing Fotocx on Windows 11 WSL
{FOTOCX HOME FOLDER} - user data files in Fotocx home folder
{FOTOCX LIMITATIONS} - size and performance limits
{FOTOCX OVERVIEW} - description, prerequisites, license, downloads
{FOTOCX PACKAGES} - package file contents
{FOTOCX PERFORMANCE} - methods and limitations, benchmarks
{FOTOCX SOURCE CODE} - how to access Fotocx source code
{GALLERY END} - jump to gallery end
{GALLERY HOME} - jump to gallery start
{GALLERY MENU}
{GALLERY OVERVIEW}
{GALLERY SCREEN} - select newest, oldest, matching pattern ...
{GALLERY SORT} - change the sort order of a gallery
{GALLERY TO ALBUM} - save current gallery as a named album
{GALLERY VIEW} - Gallery View window (view thumbnails)
{GLOBAL RETINEX} - rescale RGB values for greater range
{GRID SETTINGS} - show or remove grid lines, set line count or spacing
{HDF} - combine close/far focused images for extended depth of field
{HDR} - combine dark/bright images for an extended brightness range
{HELP MENU} - user guide, tutorial, change log, about Fotocx, uninstall
{HIGH QUALITY IMAGE UPSCALE} - how to upscale 2x with best quality
{IMAGE ARRAY} - join many images into a compact array format
{IMAGE DETERIORATION FROM REPEATED EDITS} - analysis
{IMAGE METADATA USAGE} - description and limitations
{INDEX DATA FILES} - index data files and contents
{INDEX FILES} - 1-time job to find and index all image files
{INSIDE-OUT} - invert the center-edge distance of each pixel
{INSTALLATION} - Fotocx software installation, dependencies
{INTERPOLATION METHOD} - technical description
{INVERT AREA} - invert an area (exchange outside/inside areas)
{JPEG ARTIFACTS} - suppress artifacts in highly compressed files
{JPEG COMPRESSION} - technical description
{JPEG IMAGE DETERIORATION} - analysis
{KB SHORTCUTS} - show and revise keyboard shortcuts for menu functions
{KEYBOARD ENTER KEY} - functions of Enter key
{KEYBOARD ESCAPE KEY} - functions of the Escape key
{KEYBOARD SHORTCUTS} - keyboard shortcuts for file/gallery/map views
{RECENT FOLDERS} - open Gallery View of last used file folder
{LINE COLOR} - set color for select area outlines
{LOAD/SAVE AREA} - load an area from a file or save to a file
{LOCAL CONTRAST} - add contrast adapted to local area brightness
{LOCAL RETINEX} - rescale RGB values for greater range
{LOG FILE} - Fotocx log file and crash report file (zappcrash)
{MAGNIFY IMAGE} - turn mouse into a magnifying glass over image
{MAKE WAVES} - warp an image with a wave pattern
{MANAGE ALBUMS} - create and arrange user-defined image collections
{MANAGE TAGS} - manage user-defined tags
{MAP LOCATION} - find location name from partial input, goto map location
{MAP MARKERS} - show map markers for all images or current gallery
{MAPS MENU}
{MAP REGIONS} - define custom map region names, goto map region
{MAP VIEW} - map view window (view map with image location markers)
{MARGINS} - add margins to an imqage, any color or transparency
{MARKUP} - draw on image: text, line/arrow, box, oval
{MASHUP} - arrange images and formatted text in a custom layout
{MATCH COLORS} - match the colors in one image to another image
{MEASURE IMAGE} - measure pixel distances within image (mouse clicks)
{MENU SHORTCUTS} - popup menus, keyboard shortcuts, custom user menu
{MENU SUMMARY} - outline of menu groups and contents
{METADATA ERRORS} - description and handling
{METADATA MENU}
{METADATA STANDARDS CHAOS} - multiple conflicting standards
{META VIEW} - Gallery View with thumbnail and basic metadata
{MONITOR COLOR} - tool to adjust monitor brightness and contrast
{MOSAIC} - convert image into a mosaic using tiles made from images
{MOUSE ALT-RIGHT-BUTTON} - mouse right-button for touchpads/screens
{MOUSE FUNCTIONS} - mouse functions for file/gallery/map views
{MOUSE OWNERSHIP} - dialog-mouse control and interaction
{MOVE FOTOCX HOME} - move Fotocx home folder to a new location
{NEWEST FILES} - Gallery View of newest image files
{NEWLINE CHARACTERS IN METADATA} - description and handling
{NEW SESSION} - start new Fotocx session in a separate window
{NOISE MEASUREMENT} - how is noise measured
{NUMERIC KEYPAD} - navigation using numeric keypad
{OPEN IMAGE FILE} - open an image file for view or edit
{ORGANIZING IMAGES} - organizing image files for effective searching
{OTHER TOPICS}
{OUTBOARD PROGRAMS} - required and optional programs used by Fotocx
{OUTLINES} - convert an image into an outline drawing
{PAINT EDITS} - mouse-paint an edit function locally and gradually
{PAINT IMAGE} - mouse-paint with a color, brush size, and opacity
{PAINTING} - convert an image into a simulated painting
{PAINT TRANSP} - paint increasing transparency using the mouse
{PANORAMA} - combine a series of images horizontally
{PATTERN} - add a background pattern to an image
{PERMISSIONS} - view and set permissions for an image file
{PERSPECTIVE} - straighten object photographed from an obtuse angle
{PLACES/DATES} - list image locations/dates, click for gallery
{POPUP REPORTS} - keyboard navigation for text-based popup reports
{PREVIEW MODE} - method for higher interactive performance
{PRINT CALIBRATED} - print using color calibration data
{PRINT IMAGE} - print an image file
{PRIVACY} - privacy policy and privacy considerations
{PROBLEM REPORTING} - how to analyze and report problems
{QUESTIONS, SUGGESTIONS} - how to contact the Fotocx author
{QUICK INDEX} - quick incremental index with no user interaction
{QUIT} - exit from Fotocx
{RAW IMAGE NOISE} - noise in RAW image files
{RECENT FILES} - Gallery View of most recently seen image files
{RED EYES} - remove red eyes from flash photos
{REFINE MENU}
{REMOVE DUST} - remove dust spots on images from old photos
{REMOVE HALO} - remove halos left by sharpen and other functions
{RENAME FOLDER} - rename current folder (file gallery)
{RENAME} - rename an image file
{REPAIR MENU}
{RESCALE} - change the image pixel dimensions
{RETOUCH} - edit brightness, contrast, color, saturation
{RGB HISTOGRAM} - brightness histogram graph for current image
{RIGHT-CLICK MENUS} - popup menu functions for File and Gallery View
{ROTATE PERFORMANCE} - interactive rotation performance
{ROTATE} - rotate or level an image
{RUNNING OUT OF DISK SPACE} - disk space requirements
{RUNNING OUT OF MEMORY} - memory limits and performance
{RUN SCRIPT} - execute script on current image
{SATURATION} - adjust color saturation based on brightness
{SCRIPT FILES} - script files (macros) overview
{SEARCH IMAGES} - search using any metadata or folder/file names
{SELECT AREA} - select image feature or area for separate editing
{SELECT FILES} - select files for input to batch, script or album
{SELECT IMAGE FILES} - image file selection procedure
{SELECT MENU}
{SET COLORS} - reduce the number of colors (posterize)
{SET WALLPAPER} - wallpaper from the current image file (Gnome)
{SETTINGS} - user preferences and settings for Fotocx operation
{SHARPEN} - sharpen a blurred image, multiple methods
{SHIFT COLORS} - gradually shift RGB colors to GBR or BRG
{SHOW CIM FILES} - show input files for current/latest combined image
{SHOW/HIDE AREA} - show or hide area outlines
{SHOW ON MAP} - show an image file position in Map View
{SHOW RESOURCES} - show CPU time and current memory usage
{SHOW RGB} - show RGB values at mouse position or for selected points
{SKETCH} - convert an image into a simulated sketch
{SLIDES AND NEGATIVES} - how to capture slides and film negatives
{SLIDE SHOW} - slide show with animated transitions and pan/zooms
{SMART ERASE} - remove power lines, signs, other small spoilers
{SOFT FOCUS} - apply classic "soft focus" effect to an image
{SPHERE} - curve an image into a spheroid shape
{STACK/NOISE} - combine images to reduce noise by averaging
{STACK/PAINT} - combine images to remove transient cars, tourists, etc.
{STACK/SPLIT} - show two images overlapped with movable boundary line
{STACK/LAYERS} - combine image versions, select/paint area/version
{SUPPORTED FILE TYPES} - what image file types are supported
{SYMBOLIC LINKS} - how these are handled and what to avoid
{TAGS OVERVIEW} - image tags (keywords) used for image searching
{TECHNICAL TOPICS}
{TEXTURE} - add texture to an image or selected area
{THUMB VIEW} - Gallery View with thumbnails and file names
{TILES1} - convert an image into square tiles with 3D effect
{TILES2} - convert an image into irregular tiles matching image
{TIMELINE} - show image counts by year/month, click for gallery
{TINY PLANET} - wrap a panorama image around a circle
{TOOLS MENU}
TOPIC: FOTOCX USAGE
TOPIC: FOTOCX USER GUIDE v.23.80
TOPIC: INTRODUCTION
{TOP PANEL DATA} - details of information in the File View top panel
{TWIST} - twist an image around a chosen center point
{UNBEND} - straighten images having curved lines, esp. panoramas
{UNDO/REDO BUTTON} - sequential undo or redo edits to current image
{UNWARP CLOSEUP} - remove close-up face photo distortion (big nose)
{UPDATE ALBUMS} - update albums for updated image files
{UPRIGHT} - upright a rotated or mirrored image
{USER GUIDE} ← ^click here^ - how to use this user guide browser
{VIDEO FILES} - video files, thumbnails, playing
{VIEW 360° PANO} - 360° panorama image with rotating viewpoint
{VIEW ALL META} - list all image metadata
{VIEW MAIN META} - list main image metadata
{VIGNETTE} - change brightness/color radially around chosen center
{WARP AFFINE} - warp image by mouse drag - parallel lines preserved
{WARP AREA} - warp a selected image area by pulling with the mouse
{WARP CURVED} - warp image by mouse drag - curvy warp
{WARP LINEAR} - warp image by mouse drag - straight lines preserved
{WARP MENU}
{WARP RADIAL} - add or remove barrel or pincushion distortion
{WEB UPLOAD} - uploading image files to the internet
{WINDOW VIEWS AND MENUS} - top-level windows and associated menus
{WORLD MAP} - internet world map overview
{ZOOM} - left/right click or [+-] button to zoom image or thumbnail
EOF (nothing shows beyond this line)
=================================================================================
following are tests for audit_docfile() function
run test as follows: $ fotocx -m "audit user guide"
{DELIBERATE BAD TOPIC 1} xxxxxx {DELIBERATE BAD TOPIC 2}
+image: deliberate-badfile1.png +image: deliberate-badfile2.jpg
=================================================================================
Following is the file generated by /fotocx-nn.n/UG-topics
---------------------------------------------------------
UG-topics $: ./UG-topics
source folder: /home2/mico/programs/fotocx-24.70/*.cc
file: /home2/mico/programs/fotocx-24.70/f.refine.cc
topic: {EDIT HISTOGRAM}
topic: {FLATTEN HISTOGRAM}
topic: {LOCAL CONTRAST}
topic: {AMPLIFY CONTRAST}
topic: {GLOBAL RETINEX}
topic: {LOCAL RETINEX}
topic: {SATURATION}
topic: {SOFT FOCUS}
topic: {MATCH COLORS}
topic: {BRIGHTNESS RAMP}
topic: {VIGNETTE}
file: /home2/mico/programs/fotocx-24.70/UG-topics/UG-topics.cc
file: /home2/mico/programs/fotocx-24.70/f.edit.cc
topic: {ROTATE}
topic: {UPRIGHT}
topic: {CROP}
topic: {RETOUCH}
topic: {RESCALE}
topic: {MARGINS}
topic: {MARKUP}
topic: {COLOR MODE}
topic: {PAINT EDITS}
topic: {PAINT IMAGE}
topic: {PAINT TRANSP}
topic: {AREA FILL}
topic: {COPY IN IMAGE}
topic: {COPY FROM IMAGE}
topic: {COPY FROM IMAGE}
topic: {COPY PRIOR EDIT}
topic: {EDIT TEMPLATE}
file: /home2/mico/programs/fotocx-24.70/f.widgets.cc
topic: {CUSTOM MENU}
topic: {SCRIPT FILES}
topic: {SCRIPT FILES}
topic: {SCRIPT FILES}
topic: {SCRIPT FILES}
topic: {PLUGINS}
topic: {PLUGINS}
topic: {PLUGINS}
file: /home2/mico/programs/fotocx-24.70/f.batch.cc
topic: {BATCH CONVERT}
topic: {BATCH COPY/MOVE}
topic: {BATCH UPRIGHT}
topic: {BATCH DELETE/TRASH}
topic: {BATCH RAW}
topic: {BATCH OVERLAY}
topic: {EXPORT FILE LIST}
topic: {EXPORT FILES}
file: /home2/mico/programs/fotocx-24.70/f.file.cc
topic: {NEW SESSION}
topic: {OPEN IMAGE FILE}
topic: {CYCLE 2 FILES}
topic: {CYCLE 3 FILES}
topic: {VIEW 360° PANO}
topic: {RENAME}
topic: {PERMISSIONS}
topic: {CHANGE ALPHA}
topic: {ZOOM}
topic: {BLANK IMAGE}
topic: {COPY/MOVE}
topic: {COPY TO DESKTOP}
topic: {COPY TO CLIPBOARD}
topic: {DELETE/TRASH}
topic: {CONVERT ADOBE}
topic: {SET WALLPAPER}
topic: {PRINT IMAGE}
topic: {PRINT CALIBRATED}
topic: {CALIBRATE PRINTER}
topic: {HELP MENU}
topic: {HELP MENU}
topic: {FILE SAVE}
file: /home2/mico/programs/fotocx-24.70/f.warp.cc
topic: {UNBEND}
topic: {PERSPECTIVE}
topic: {WARP AREA}
topic: {WARP CURVED}
topic: {WARP LINEAR}
topic: {WARP AFFINE}
topic: {WARP RADIAL}
topic: {UNWARP CLOSEUP}
topic: {MAKE WAVES}
topic: {TWIST}
topic: {SPHERE}
topic: {INSIDE-OUT}
topic: {TINY PLANET}
topic: {ESCHER SPIRAL}
topic: {FLATTEN PHOTO}
file: /home2/mico/programs/fotocx-24.70/f.meta.cc
topic: {VIEW MAIN META}
topic: {VIEW MAIN META}
topic: {EDIT MAIN META}
topic: {EDIT ANY META}
topic: {DELETE META}
topic: {COPY META}
topic: {FIX META}
topic: {MANAGE TAGS}
topic: {CAPTIONS}
topic: {CAPTIONS}
topic: {BATCH TAGS}
topic: {BATCH RENAME TAGS}
topic: {BATCH PHOTO DATE}
topic: {BATCH CHANGE META}
topic: {BATCH REPORT META}
topic: {BATCH MOVE META}
topic: {BATCH GEOTAGS}
topic: {PLACES/DATES}
topic: {TIMELINE}
topic: {SEARCH IMAGES}
topic: {WORLD MAP}
topic: {MAP REGIONS}
topic: {MAP LOCATION}
topic: {MAP MARKERS}
topic: {SHOW ON MAP}
file: /home2/mico/programs/fotocx-24.70/fotocx.cc
topic: {OUTBOARD PROGRAMS}
topic: {FIRST INDEX}
topic: {UNDO/REDO BUTTON}
file: /home2/mico/programs/fotocx-24.70/f.tools.cc
topic: {INDEX FILES}
topic: {QUICK INDEX}
topic: {SETTINGS}
topic: {KB SHORTCUTS}
topic: {RGB HISTOGRAM}
topic: {MAGNIFY IMAGE}
topic: {MEASURE IMAGE}
topic: {SHOW RGB}
topic: {GRID SETTINGS}
topic: {GRID SETTINGS}
topic: {LINE COLOR}
topic: {DARK/BRIGHT PIXELS}
topic: {MONITOR COLOR}
topic: {FIND DUPLICATES}
topic: {SHOW RESOURCES}
file: /home2/mico/programs/fotocx-24.70/f.select.cc
topic: {SELECT AREA}
topic: {FIND AREA GAP}
topic: {AREA BLEND}
topic: {SHOW/HIDE AREA}
topic: {SHOW/HIDE AREA}
topic: {ENABLE/DISABLE AREA}
topic: {ENABLE/DISABLE AREA}
topic: {INVERT AREA}
topic: {CLEAR AREA}
topic: {COPY/PASTE AREA}
topic: {LOAD/SAVE AREA}
topic: {LOAD/SAVE AREA}
topic: {COPY/PASTE AREA}
file: /home2/mico/programs/fotocx-24.70/f.mashup.cc
topic: {MASHUP}
topic: {IMAGE ARRAY}
file: /home2/mico/programs/fotocx-24.70/f.effects.cc
topic: {OUTLINES}
topic: {SKETCH}
topic: {CARTOON}
topic: {EMBOSS}
topic: {TILES1}
topic: {TILES2}
topic: {PAINTING}
topic: {TEXTURE}
topic: {PATTERN}
topic: {DITHER}
topic: {DITHER}
topic: {DITHER}
topic: {DITHER}
topic: {DITHER}
topic: {DITHER}
topic: {ENGRAVE}
topic: {MOSAIC}
topic: {ADD NOISE}
topic: {SET COLORS}
topic: {SHIFT COLORS}
topic: {ALIEN COLORS}
topic: {CUSTOM KERNEL}
file: /home2/mico/programs/fotocx-24.70/f.gallery.cc
topic: {ZOOM}
topic: {ZOOM}
topic: {THUMB VIEW}
topic: {META VIEW}
topic: {RECENT FILES}
topic: {NEWEST FILES}
topic: {GALLERY SORT}
topic: {GALLERY SCREEN}
topic: {CURRENT FOLDER}
topic: {RECENT FOLDERS}
topic: {FOLDER TREE}
topic: {SELECT IMAGE FILES}
topic: {RENAME FOLDER}
topic: {ADD SUBFOLDER}
topic: {BOOKMARKS}
topic: {BOOKMARKS}
topic: {VIDEO FILES}
file: /home2/mico/programs/fotocx-24.70/f.pixmap.cc
file: /home2/mico/programs/fotocx-24.70/f.repair.cc
topic: {SHARPEN}
topic: {BLUR}
topic: {BLUR}
topic: {BLUR}
topic: {BLUR}
topic: {BLUR}
topic: {DENOISE}
topic: {DEFOG}
topic: {RED EYES}
topic: {SMART ERASE}
topic: {REMOVE HALO}
topic: {JPEG ARTIFACTS}
topic: {ANTI-ALIAS}
topic: {ADJUST RGB}
topic: {ADJUST HSL}
topic: {REMOVE DUST}
topic: {FRINGES}
file: /home2/mico/programs/fotocx-24.70/f.comb.cc
topic: {HDR}
topic: {HDF}
topic: {STACK/PAINT}
topic: {STACK/NOISE}
topic: {STACK/LAYERS}
topic: {STACK/SPLIT}
topic: {PANORAMA}
topic: {SHOW CIM FILES}
file: /home2/mico/programs/fotocx-24.70/f.albums.cc
topic: {MANAGE ALBUMS}
topic: {MANAGE ALBUMS}
topic: {MANAGE ALBUMS}
topic: {MANAGE ALBUMS}
topic: {MANAGE ALBUMS}
topic: {UPDATE ALBUMS}
topic: {GALLERY TO ALBUM}
topic: {ALBUM MASS UPDATE}
topic: {SLIDE SHOW}
|