I discovered recently that Capture One does not have a menu command for switching an image to and from black & white mode and, therefore, there's no way to assign a keyboard shortcut to that command. The only way to do this is through the user interface, which is clunky, and a pain to apply to multiple items (one has to enable Edit Selected and then find the Black & White tool and the Enable Black & White box and tick it, and then copy and apply the adjustment to the selected images — which is a lot of operations to just toggle in and out of black & white mode).
My solution is an AppleScript (sorry, Windows users) which I then place in the Capture One Scripts folder (go to Scripts > Open Scripts Folder). Since Capture One's keyboard shortcut editor does not allow me to assign a shortcut to a script in the Scripts menu, I use the macOS System Settings > Keyboard > Keyboard Shortcuts settings to assign a keyboard shortcut to the menu item corresponding to the script (in my case, the script is named Toggle Black & White, and I assign command-shift-M to it, which isn't used anywhere else in Capture One).
The script is given below. The use of references and indexing is equivalent to using pointers in C/C++ (or references in C++, for that matter), and speeds up processing enormously. An implementation using standard AppleScript syntax for accessing the adjustments took about 25 seconds to toggle the settings on 200 images; using references brings the time down to under 8 seconds. Using Capture One's Enable Black & White command takes about 3 seconds, not including all the UI fiddling to get to it. (2020 27" iMac, 3.8GHz i7, 16GB.)
One important difference is that the Capture One command is a single operation, and can be undone with the Undo (command-Z) command; each image toggled by the script counts as a separate operation, so Undo only undoes the last image toggled. Of course, to undo the script's operation, one simply has to run it again, because the script actually toggles the setting on each image: if an image (variant) was in colour, it will be set to black & white, and if it was black & white it will be set to colour. The Capture One command simply switches everything selected to black & white or colour, regardless of its original value.
Anyway, I thought it would be handy, so, after much ado, the script itself. Enjoy.
use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
tell application "Capture One 23"
set variantList to variants whose selected is true
set numVariants to count of variantList
set varIndex to 1
repeat until varIndex > numVariants
If an error occurs, just go on to the next one.
set curVar to (a reference to (item varIndex of variantList))
set curAdj to (a reference to (adjustments of curVar))
Get current black & white setting and invert it.
set curBW to black and white of curAdj
set black and white of curAdj to not curBW
set varIndex to varIndex + 1
Please sign in to leave a comment.