diff --git a/README.md b/README.md index 058f445..1a985c8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # **OptimaLab35** [OptimaLab35](https://gitlab.com/CodeByMrFinchum/OptimaLab35) is a graphical and terminal user interface for [optima35](https://gitlab.com/CodeByMrFinchum/optima35). It is under **heavy development**, and both UI elements and cross-platform compatibility may change. - ## **Overview** **OptimaLab35** extends **OPTIMA35** (**Organizing, Processing, Tweaking Images, and Modifying scanned Analogs from 35mm Film**) by providing an intuitive interface for image and metadata management. While tailored for analog photography, it supports any type of image. @@ -20,7 +19,6 @@ Install via pip (dependencies are automatically managed, except for `simple-term pip install OptimaLab35 ``` - ## **Development and Notes** **Alpha Stage** @@ -32,6 +30,24 @@ pip install OptimaLab35 - **GUI**: Default if **PySide6** is available. - **TUI**: Fallback if **PySide6** is missing or can be explicitly started using the `--tui` flag. +### Preview GUI + +**Main tab** + +![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/0.1.1/media/main_tab.png){width=40%} + +**Exif tab** + +![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/0.1.1/media/exif_tab.png){width=40%} + +**Exif editor** + +![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/0.1.1/media/exif_editor.png){width=40%} + +**Info window** + +![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/0.1.1/media/info_window.png){width=40%} + ## **Features** ### **Image Processing** diff --git a/media/demo_v041.cast b/media/demo_v041.cast deleted file mode 100644 index 8fe36aa..0000000 --- a/media/demo_v041.cast +++ /dev/null @@ -1,372 +0,0 @@ -{"version": 2, "width": 80, "height": 24, "timestamp": 1735643611, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}} -[0.677329, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[0.678152, "o", "\u001b]2;sam@potatohead:~/git/gitlab_public/optima-35\u0007\u001b]1;..lic/optima-35\u0007"] -[0.680479, "o", "\u001b]7;file://potatohead/home/sam/git/gitlab_public/optima-35\u0007"] -[0.743392, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[48;5;30m\u001b[37m\u001b[0m\u001b[37m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[38;5;250mg\u001b[0m\u001b[38;5;250m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255moptima-35\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[43m\u001b[38;5;30m\u001b[0m\u001b[38;5;30m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m feature/enhance-modularity \u001b[30m!5 \u001b[30m?2\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K\u001b[1C\u001b[0m\u001b[49m\u001b[30m\u001b[0m\u001b[30m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m✔\u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m \u001b[0m\u001b[32m\u001b[40m\u001b[40m\u001b[32m\u001b[34m\u001b[0m\u001b[34m\u001b[40m\u001b[44m\u001b[30m base\u001b[0m\u001b[30m\u001b[44m\u001b[44m\u001b[30m \u001b[0m\u001b[30m\u001b[44m\u001b[44m\u001b[30m \u001b[0m\u001b[30m\u001b[44m\u001b[49m\u001b[39m\u001b[14D"] -[0.744052, "o", "\u001b[?2004h"] -[1.448961, "o", "m\u001b[K"] -[1.45588, "o", "\b\u001b[4mm\u001b[24m"] -[1.456369, "o", "\b\u001b[4mm\u001b[24m\u001b[38;5;244micromamba acti\u001b[38;5;244mv\u001b[38;5;244mate optima35\u001b[39m\u001b[K\u001b[A\u001b[53C"] -[1.524001, "o", "\b\u001b[4mm\u001b[39m\u001b[4mi\u001b[24m"] -[1.538941, "o", "\b\b\u001b[24m\u001b[1m\u001b[31mm\u001b[24m\u001b[1m\u001b[31mi\u001b[0m\u001b[39m"] -[1.64567, "o", "\b\b\u001b[1m\u001b[31mm\u001b[1m\u001b[31mi\u001b[1m\u001b[31mc\u001b[0m\u001b[39m"] -[1.823061, "o", "\b\u001b[1m\u001b[31mc\u001b[1m\u001b[31mr\u001b[0m\u001b[39m"] -[1.936561, "o", "\b\u001b[1m\u001b[31mr\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"] -[1.941248, "o", "\b\b\b\b\b\u001b[0m\u001b[32mm\u001b[0m\u001b[32mi\u001b[0m\u001b[32mc\u001b[0m\u001b[32mr\u001b[0m\u001b[32mo\u001b[39m"] -[2.275468, "o", "\u001b[39mm\u001b[39ma\u001b[39mm\u001b[39mb\u001b[39ma\u001b[39m \u001b[39ma\u001b[39mc\u001b[39mt\u001b[39miv\u001b[39ma\u001b[39mt\u001b[39me\u001b[39m \u001b[39mo\u001b[39mp\u001b[39mt\u001b[39mi\u001b[39mm\u001b[39ma\u001b[39m3\u001b[39m5"] -[2.283536, "o", "\u001b[A\u001b[56C\u001b[32mo\u001b[32mm\u001b[32ma\u001b[32mm\u001b[32mb\u001b[32ma\u001b[39m\u001b[1B\u001b[62D"] -[2.684344, "o", "\u001b[?2004l\r\r\n"] -[2.686472, "o", "\u001b]2;micromamba activate optima35\u0007\u001b]1;\u0007"] -[2.719122, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[2.719308, "o", "\u001b]2;sam@potatohead:~/git/gitlab_public/optima-35\u0007\u001b]1;..lic/optima-35\u0007"] -[2.722384, "o", "\u001b]7;file://potatohead/home/sam/git/gitlab_public/optima-35\u0007"] -[2.8234, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[48;5;30m\u001b[37m\u001b[0m\u001b[37m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[38;5;250mg\u001b[0m\u001b[38;5;250m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255moptima-35\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[43m\u001b[38;5;30m\u001b[0m\u001b[38;5;30m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m feature/enhance-modularity \u001b[30m!5 \u001b[30m?2\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K"] -[2.824436, "o", "\u001b[?2004h"] -[3.546197, "o", "p"] -[3.552859, "o", "\b\u001b[1m\u001b[31mp\u001b[0m\u001b[39m"] -[3.553263, "o", "\b\u001b[1m\u001b[31mp\u001b[0m\u001b[39m\u001b[38;5;244myside6-uic ui/\u001b[38;5;244mm\u001b[38;5;244main_window.ui -o ui/main_window.py \u001b[39m\u001b[K\u001b[A\u001b[30C"] -[3.775027, "o", "\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31my\u001b[0m\u001b[39m"] -[3.978262, "o", "\b\b\u001b[1m\u001b[31mp\u001b[1m\u001b[31my\u001b[1m\u001b[31mt\u001b[0m\u001b[39m\u001b[K\u001b[1B\r\u001b[K\u001b[A\u001b[68C"] -[3.996697, "o", "\u001b[38;5;244mhon main.py\u001b[39m\u001b[11D"] -[4.104095, "o", "\b\u001b[1m\u001b[31mt\u001b[1m\u001b[31mh\u001b[0m\u001b[39m"] -[4.51609, "o", "\b\u001b[1m\u001b[31mh\u001b[1m\u001b[31mo\u001b[0m\u001b[39m"] -[4.898228, "o", "\u001b[39mn\u001b[39m \u001b[39mm\u001b[39ma\u001b[39mi\u001b[39mn\u001b[39m.\u001b[39mp\u001b[39my"] -[4.916302, "o", "\u001b[14D\u001b[0m\u001b[32mp\u001b[0m\u001b[32my\u001b[0m\u001b[32mt\u001b[0m\u001b[32mh\u001b[0m\u001b[32mo\u001b[32mn\u001b[39m \u001b[4mm\u001b[4ma\u001b[4mi\u001b[4mn\u001b[4m.\u001b[4mp\u001b[4my\u001b[24m"] -[5.403027, "o", "\b\u001b[4my\u001b[4m \u001b[24m \r\u001b[K"] -[5.409587, "o", "\u001b[A\u001b[78C\u001b[4my\u001b[24m\u001b[24m \u001b[K\r"] -[5.40996, "o", "\u001b[38;5;244m-\u001b[38;5;244m-\u001b[38;5;244mt\u001b[38;5;244mu\u001b[38;5;244mi\u001b[39m\r"] -[5.601688, "o", "\u001b[39m-"] -[5.722974, "o", "\r-\u001b[39m-"] -[6.026401, "o", "\u001b[39mt"] -[6.161384, "o", "\u001b[39mu"] -[6.217467, "o", "\u001b[39mi"] -[6.589968, "o", "\u001b[?2004l\r\r\n"] -[6.59058, "o", "\u001b]2;python main.py --tui\u0007\u001b]1;\u0007"] -[6.617562, "o", "Fall back to exif example file...\r\n"] -[6.622191, "o", "Starting TUI...\r\n"] -[6.716642, "o", "Settings file empty.\r\nNo settings found...\r\nAsking for new settings...\r\n\r\nDefault resize percentage (below 100 downscale, above upscale): "] -[9.164618, "o", "8"] -[9.248071, "o", "0"] -[9.743554, "o", "\r\n"] -[9.743735, "o", "Default contrast percentage (negative = decrease, positive = increase): "] -[10.78209, "o", "1"] -[10.867213, "o", "0"] -[11.206582, "o", "\r\n"] -[11.206816, "o", "Default brighness percentage (negative = decrease, positive = increase): "] -[11.714352, "o", "-"] -[12.073169, "o", "1"] -[12.167016, "o", "0"] -[12.597502, "o", "\r\n"] -[12.597744, "o", "JPEG quality (1-100, 80 default): "] -[13.650373, "o", "8"] -[13.712797, "o", "0"] -[13.941506, "o", "\r\n"] -[13.941706, "o", "PNG compression level (0-9, 6 default): "] -[14.539469, "o", "6"] -[14.796779, "o", "\r\n"] -[14.938909, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[14.942831, "o", "\u001b[A\rOptimize images i.e. compressing? \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b[34my\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \u001b(B\u001b[m\u001b[47m\u001b[30myes\u001b(B\u001b[m \r\n"] -[14.943016, "o", "\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b[34mn\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m no \r\u001b[A"] -[14.946002, "o", "\u001b(B\u001b[m\u001b[31m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\u001b[A"] -[15.919041, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[15.922308, "o", "New settings saved successfully.\r\nEnter path of input folder: "] -[17.083508, "o", "o"] -[17.413375, "o", "\b \b"] -[17.597213, "o", "l"] -[17.763659, "o", "o"] -[17.829166, "o", "c"] -[17.907582, "o", "a"] -[18.018695, "o", "l"] -[18.219882, "o", "_"] -[18.597998, "o", "f"] -[18.684139, "o", "i"] -[18.854542, "o", "l"] -[18.910718, "o", "e"] -[19.116207, "o", "s"] -[19.29677, "o", "/"] -[19.606841, "o", "i"] -[19.67462, "o", "m"] -[19.7635, "o", "g"] -[19.92206, "o", "\r\n"] -[19.922244, "o", "Enter path of output folder: "] -[20.173606, "o", "l"] -[20.321372, "o", "o"] -[20.383433, "o", "c"] -[20.463172, "o", "a"] -[20.555845, "o", "l"] -[20.752791, "o", "_"] -[20.975923, "o", "f"] -[21.051336, "o", "i"] -[21.212242, "o", "l"] -[21.277781, "o", "e"] -[21.473246, "o", "s"] -[21.804064, "o", "/"] -[22.106301, "o", "o"] -[22.201691, "o", "u"] -[22.269246, "o", "t"] -[22.601648, "o", "\r\n"] -[22.601885, "o", "Enter export file format (jpg, png, webp): "] -[24.083726, "o", "j"] -[24.127736, "o", "p"] -[24.264589, "o", "g"] -[24.57916, "o", "\r\n"] -[24.598678, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n\r\n\r\n"] -[24.607614, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mResize image\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n"] -[24.607794, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[24.608348, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[24.616611, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[24.616839, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r"] -[24.617428, "o", "\r\n \r\r\n \r\r\n \r"] -[24.619314, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C"] -[24.619478, "o", "\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[26.660369, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange EXIF\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[26.660559, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[26.66109, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[26.6667, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r"] -[26.666875, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[26.789333, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mConvert to grayscale\u001b(B\u001b[m \r\n"] -[26.789529, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[26.789664, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[26.797578, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[26.798309, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r"] -[26.798751, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[26.929884, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[26.930073, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange contrast\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[26.930199, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[26.937997, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[26.938647, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r"] -[26.939112, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.212356, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[27.212564, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange brightness\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.22141, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[27.221766, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r"] -[27.221985, "o", "\r\n \r\r\n \r"] -[27.222796, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.344641, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[27.345282, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mRename images\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[27.345758, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.354429, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r"] -[27.35514, "o", "\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.616497, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[27.616697, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mInvert image order\u001b(B\u001b[m \r\n"] -[27.617352, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.623229, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r"] -[27.623463, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.778389, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[27.778648, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n"] -[27.779389, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mAdd Watermark\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[27.787995, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[27.788617, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r"] -[27.788866, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[27.789448, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.089642, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[28.089921, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n"] -[28.090473, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n"] -[28.09084, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mAdd Watermark\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.096658, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[28.096769, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r"] -[28.096929, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.244958, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[28.245236, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n"] -[28.245441, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n"] -[28.246239, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mInvert image order\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.254857, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[28.255412, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n"] -[28.255651, "o", " \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[28.255861, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[28.256065, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.538276, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[28.53847, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mRename images\u001b(B\u001b[m \r\n"] -[28.539087, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.547915, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[28.54851, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r"] -[28.549125, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C"] -[28.549609, "o", "\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.635635, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[28.636112, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mRename images\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[28.645078, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[28.645679, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r"] -[28.646141, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C"] -[28.646396, "o", "\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.060214, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[29.060392, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n"] -[29.060994, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mInvert image order\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.066936, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[29.06701, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n"] -[29.06705, "o", " \r"] -[29.067299, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.305548, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n"] -[29.305754, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mInvert image order\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.314491, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[29.314678, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r"] -[29.315449, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.476124, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[29.476376, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n"] -[29.476945, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n"] -[29.477451, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mRename images\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.485916, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[29.486211, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n"] -[29.48687, "o", " \r"] -[29.487248, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.645362, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[29.645617, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n"] -[29.646303, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange brightness\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.655419, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[29.655923, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[29.656398, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r"] -[29.656619, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[29.656796, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.832918, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[29.83311, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange brightness\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.842077, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[29.842286, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r"] -[29.842422, "o", "\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n"] -[29.842576, "o", " \r\r\n \r\r\n \r"] -[29.843329, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[29.843799, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.976699, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[29.976948, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange contrast\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[29.985854, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[29.98636, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[29.986765, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.109772, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[30.109978, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange contrast\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.118884, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[30.119119, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r"] -[30.119814, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.230951, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[30.231215, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mConvert to grayscale\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n"] -[30.231425, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n"] -[30.231688, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.240842, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[30.241119, "o", "\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r"] -[30.241323, "o", "\r\n \r\r\n \r"] -[30.242531, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.360245, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n"] -[30.360539, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mConvert to grayscale\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[30.360826, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.36533, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n \r\r\n"] -[30.365472, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r"] -[30.365943, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.50115, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n"] -[30.501599, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange EXIF\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n"] -[30.502022, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.510559, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[30.510805, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n"] -[30.510971, "o", " \r\r\n \r\r\n \r\r\n \r\r\n \r"] -[30.511911, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.685517, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CResize image \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mChange EXIF\u001b(B\u001b[m \r\n"] -[30.685758, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[30.685952, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.694848, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[30.695365, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r"] -[30.695848, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C"] -[30.696368, "o", "\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.83141, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mResize image\u001b(B\u001b[m \r\n"] -[30.831678, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n"] -[30.831884, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n"] -[30.832089, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n"] -[30.832289, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[30.84096, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r"] -[30.84152, "o", "\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m \u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[30.841772, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[30.841971, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[31.156421, "o", "\u001b[A\u001b[A\u001b[A\r \r\nOPTIMA-35 v.0.4.1 \r\nSelect what you want to do (esc or q to exit) \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mResize image\u001b(B\u001b[m \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange EXIF \r\n"] -[31.156634, "o", "\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CConvert to grayscale \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange contrast \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CChange brightness \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CRename images \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CInvert image order \r\n\u001b[C\u001b[C\u001b[C\u001b[C\u001b[C\u001b[CAdd Watermark \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[31.163125, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b(B\u001b[m\u001b[33m\u001b[40m\rPress , for multi-selection and to select and accept \r\u001b(B\u001b[m\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\r\n"] -[31.163206, "o", " \r\r\n \r"] -[31.163253, "o", "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C"] -[31.163314, "o", "\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\n"] -[31.16336, "o", "\r\u001b[C\u001b[C\u001b(B\u001b[m\u001b[37m[\u001b(B\u001b[m\u001b(B\u001b[m\u001b[33m\u001b[1m*\u001b(B\u001b[m\u001b(B\u001b[m\u001b[37m]\u001b(B\u001b[m \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[31.51079, "o", "\u001b[A\u001b[A\u001b[A\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[31.510988, "o", "What should be the name for the new images? "] -[33.593907, "o", "e"] -[33.888461, "o", "\b \b"] -[33.989013, "o", "d"] -[34.134175, "o", "e"] -[34.173323, "o", "m"] -[34.24098, "o", "o"] -[34.728246, "o", "\r\n"] -[34.728423, "o", "Enter text for watermark. "] -[35.633165, "o", "D"] -[35.803621, "o", "e"] -[35.845136, "o", "m"] -[35.914241, "o", "o"] -[36.168864, "o", " "] -[36.853512, "o", "\b \b"] -[37.105764, "o", "\r\n"] -[37.12281, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[37.130101, "o", "\u001b[A\rEnter Make \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mNikon\u001b(B\u001b[m \r\n"] -[37.130252, "o", "\u001b[C\u001b[CCanon \r\u001b[A"] -[37.137636, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\u001b[A"] -[38.366811, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[38.377981, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[38.38132, "o", "\u001b[A\rEnter Model \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mFG\u001b(B\u001b[m \r\n\u001b[C\u001b[CF50 \r\n\u001b[C\u001b[CAE-1 \r\u001b[A\u001b[A"] -[38.384958, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\u001b[A\u001b[A"] -[38.874015, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[M"] -[38.874229, "o", "\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[38.886354, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[38.889292, "o", "\u001b[A\rEnter Lens \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mNikon LENS SERIES E 50mm\u001b(B\u001b[m \r\n\u001b[C\u001b[CAF NIKKOR 35-70mm \r\n"] -[38.889375, "o", "\u001b[C\u001b[CCanon FD 50mm f/1.4 S.S.C \r\u001b[A\u001b[A"] -[38.892151, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\u001b[A\u001b[A"] -[39.594436, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[39.60723, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[39.610311, "o", "\u001b[A\rEnter Iso \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30m100\u001b(B\u001b[m \r\n\u001b[C\u001b[C200 \r\n"] -[39.610499, "o", "\u001b[C\u001b[C400 \r\n\u001b[C\u001b[C800 \r\n\u001b[C\u001b[C1000 \r\n\u001b[C\u001b[C1600 \r\n\u001b[C\u001b[C3200 \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[39.613514, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r"] -[39.613654, "o", "\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[40.285396, "o", "\u001b[A\rEnter Iso \r\n\u001b[C\u001b[C100 \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30m200\u001b(B\u001b[m \r\n\u001b[C\u001b[C400 \r\n\u001b[C\u001b[C800 \r\n"] -[40.285634, "o", "\u001b[C\u001b[C1000 \r\n\u001b[C\u001b[C1600 \r\n\u001b[C\u001b[C3200 \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[40.290088, "o", " \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[40.486366, "o", "\u001b[A\rEnter Iso \r\n\u001b[C\u001b[C100 \r\n\u001b[C\u001b[C200 \r\n"] -[40.486584, "o", "\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30m400\u001b(B\u001b[m \r\n\u001b[C\u001b[C800 \r\n\u001b[C\u001b[C1000 \r\n\u001b[C\u001b[C1600 \r\n\u001b[C\u001b[C3200 \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[40.49292, "o", " \r\r\n \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A"] -[41.095691, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[41.107748, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[41.11136, "o", "\u001b[A\rEnter Image Description \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mILFORD DELTA 3200\u001b(B\u001b[m \r\n\u001b[C\u001b[CILFORD ILFOCOLOR \r\n\u001b[C\u001b[CLomoChrome Turquoise \r\n\u001b[C\u001b[CKodak 200 \r\u001b[A\u001b[A\u001b[A"] -[41.115136, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A"] -[42.008703, "o", "\u001b[A\rEnter Image Description \r\n\u001b[C\u001b[CILFORD DELTA 3200 \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mILFORD ILFOCOLOR\u001b(B\u001b[m \r\n"] -[42.008925, "o", "\u001b[C\u001b[CLomoChrome Turquoise \r\n\u001b[C\u001b[CKodak 200 \r\u001b[A\u001b[A\u001b[A"] -[42.015056, "o", " \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\u001b[A\u001b[A\u001b[A"] -[42.414356, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[42.431029, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[42.43832, "o", "\u001b[A\rEnter User Comment \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mScanner.NORITSU-KOKI\u001b(B\u001b[m \r\n"] -[42.438554, "o", "\u001b[C\u001b[CScanner.NA \r\u001b[A"] -[42.445809, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\u001b[A"] -[43.147181, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[43.1585, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[43.161793, "o", "\u001b[A\rEnter Artist \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mMr. Finchum\u001b(B\u001b[m \r\n"] -[43.16201, "o", "\u001b[C\u001b[CJohn Doe \r\u001b[A"] -[43.16618, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\u001b[A"] -[43.620173, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[?12l\u001b[?25h\u001b[?1l\u001b>"] -[43.631543, "o", "\u001b[?1h\u001b=\u001b[?25l\r\n"] -[43.63482, "o", "\u001b[A\rEnter Copyright Info \r\n\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mAll Rights Reserved\u001b(B\u001b[m \r\n\u001b[C\u001b[CCC BY-NC 4.0 \r\n\u001b[C\u001b[CNo Copyright \r\u001b[A\u001b[A"] -[43.638191, "o", "\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\r\n \r\u001b[A\u001b[A"] -[44.39754, "o", "\u001b[A\rEnter Copyright Info \r\n\u001b[C\u001b[CAll Rights Reserved \r\n"] -[44.397768, "o", "\u001b[C\u001b[C\u001b(B\u001b[m\u001b[47m\u001b[30mCC BY-NC 4.0\u001b(B\u001b[m \r\n\u001b[C\u001b[CNo Copyright \r\u001b[A\u001b[A"] -[44.404144, "o", " \r\r\n\u001b(B\u001b[m\u001b[37m\u001b[1m> \u001b(B\u001b[m\r\r\n \r\u001b[A\u001b[A"] -[44.707673, "o", "\u001b[A\u001b[M\u001b[M\u001b[M\u001b[M"] -[44.707849, "o", "\u001b[?12l\u001b[?25h\u001b[?1l\u001b>Enter a date (yyyy-mm-dd): "] -[45.955851, "o", "2"] -[46.054154, "o", "0"] -[46.404177, "o", "2"] -[46.497714, "o", "4"] -[47.123881, "o", "-"] -[47.416185, "o", "1"] -[47.489983, "o", "2"] -[47.757033, "o", "-"] -[48.21329, "o", "3"] -[48.282472, "o", "1"] -[49.029909, "o", "\r\n"] -[49.036256, "o", "Enter Latitude (xx.xxxxxx): "] -[49.59262, "o", "\r\n"] -[49.773864, "o", "1|------------> |4\r"] -[49.844145, "o", "2|-------------------------> |4\r"] -[49.917126, "o", "3|-------------------------------------> |4\r"] -[49.992149, "o", "4|-------------------------------------------------->|4\r\r\nDone\r\n"] -[50.012799, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] -[50.013073, "o", "\u001b]2;sam@potatohead:~/git/gitlab_public/optima-35\u0007\u001b]1;..lic/optima-35\u0007"] -[50.016341, "o", "\u001b]7;file://potatohead/home/sam/git/gitlab_public/optima-35\u0007"] -[50.047409, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[47m\u001b[38;5;30m \u001b[0m\u001b[38;5;30m\u001b[47m\u001b[48;5;30m\u001b[37m\u001b[0m\u001b[37m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m  \u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255m~\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[38;5;250mgi\u001b[0m\u001b[38;5;250m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[38;5;250mg\u001b[0m\u001b[38;5;250m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m/\u001b[1m\u001b[38;5;254m\u001b[48;5;30m\u001b[38;5;255moptima-35\u001b[0m\u001b[38;5;255m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m\u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[48;5;30m\u001b[38;5;254m \u001b[0m\u001b[38;5;254m\u001b[48;5;30m\u001b[43m\u001b[38;5;30m\u001b[0m\u001b[38;5;30m\u001b[43m\u001b[43m\u001b[30m  \u001b[30m feature/enhance-modularity \u001b[30m!5 \u001b[30m?2\u001b[0m\u001b[30m\u001b[43m\u001b[43m\u001b[30m \u001b[0m\u001b[30m\u001b[43m\u001b[49m\u001b[33m\u001b[0m\u001b[33m\u001b[49m\u001b[39m \u001b[0m\u001b[49m\u001b[39m\u001b[K"] -[50.0481, "o", "\u001b[?2004h"] -[52.228733, "o", "\u001b[?2004l\r\r\n"] diff --git a/media/exif_editor.png b/media/exif_editor.png new file mode 100644 index 0000000..81fa4b0 Binary files /dev/null and b/media/exif_editor.png differ diff --git a/media/exif_tab.png b/media/exif_tab.png new file mode 100644 index 0000000..723c814 Binary files /dev/null and b/media/exif_tab.png differ diff --git a/media/exif_tab_disabled.png b/media/exif_tab_disabled.png deleted file mode 100644 index 905d46e..0000000 Binary files a/media/exif_tab_disabled.png and /dev/null differ diff --git a/media/exif_tab_enabled.png b/media/exif_tab_enabled.png deleted file mode 100644 index 6c20ba3..0000000 Binary files a/media/exif_tab_enabled.png and /dev/null differ diff --git a/media/exifeditor.png b/media/exifeditor.png deleted file mode 100644 index 3e33d94..0000000 Binary files a/media/exifeditor.png and /dev/null differ diff --git a/media/info_window.png b/media/info_window.png new file mode 100644 index 0000000..dea48ac Binary files /dev/null and b/media/info_window.png differ diff --git a/media/main_tab.png b/media/main_tab.png index b160602..16a65b4 100644 Binary files a/media/main_tab.png and b/media/main_tab.png differ diff --git a/src/OptimaLab35/__init__.py b/src/OptimaLab35/__init__.py index 3dc1f76..485f44a 100644 --- a/src/OptimaLab35/__init__.py +++ b/src/OptimaLab35/__init__.py @@ -1 +1 @@ -__version__ = "0.1.0" +__version__ = "0.1.1" diff --git a/src/OptimaLab35/gui.py b/src/OptimaLab35/gui.py index 9b34deb..19294fd 100644 --- a/src/OptimaLab35/gui.py +++ b/src/OptimaLab35/gui.py @@ -63,7 +63,17 @@ class OptimaLab35(QMainWindow, Ui_MainWindow): self.ui.actionInfo.triggered.connect(self._info_window) def _info_window(self): - self.sd.show_dialog(f"{self.name} v{self.version}", f"{self.name} v{self.version} is a GUI for {self.o.name} (v{self.o.version})") + info_text = f""" +

{self.name} v{self.version}

+

{self.name} is a GUI for {self.o.name} (v{self.o.version}).

+

For more details, visit:

+ + """ + + self.sd.show_dialog(f"{self.name} v{self.version}", info_text) def _process(self): self.ui.start_button.setEnabled(False) diff --git a/src/OptimaLab35/main.py b/src/OptimaLab35/main.py index 6892ca8..833078b 100644 --- a/src/OptimaLab35/main.py +++ b/src/OptimaLab35/main.py @@ -1,8 +1,15 @@ import os from argparse import ArgumentParser -from OptimaLab35 import gui, tui -from OptimaLab35 import __version__ -# Mainly from ChatGPT +from OptimaLab35 import gui, __version__ + +# Try importing TUI only if simple-term-menu is installed +try: + from OptimaLab35 import tui + simple_term_menu_installed = True +except ImportError: + simple_term_menu_installed = False + +# Check if PySide is installed def check_pyside_installed(): try: import PySide6 # Replace with PySide2 if using that version @@ -14,7 +21,11 @@ def start_gui(): gui.main() def start_tui(): - tui.main() + if simple_term_menu_installed: + tui.main() + else: + print("Error: simple-term-menu is not installed. Please install it to use the TUI mode.") + exit(1) def main(): parser = ArgumentParser(description="Start the Optima35 application.")