Wait for HDR processing
I wrote an Apple Script for Capture One to click on menu items to merge HDR images.
This is my process:
- Select last
- Send keystroke Shift + right five times to select the last five photos
- Merge to HDR with default
- Delay 1 minute
- Select previous set
I repeat this for the number of HDR stacks in the folder but I am trying to find a way to eliminate the delay and check if the processing is done. Is there a way to do this using Apple Script?
-
If you send CaptureOne a command while the hdr merge is running, it should not respond until the merge is complete.
However AppleScript will time out if the delay is more than 60 seconds, and ignore any response after that.
The AppleScript timeout can be changed by adding a “with timeout” clause to the command.
If I recall correctly “with timeout 0” sets the timeout to infinity, and AppleScript will wait indefinitely until it receives a response.Method
After the 5 keystrokes, send CaptureOne some innocuous command like “get count of images with timeout 0”, and AppleScript will wait until CaptureOne responds. Then ignore C1s response and do whatever comes next.0 -
hi, do you make it works? really need this
0 -
You can modify your script to eliminate the delay and check if the processing is done:
tell application "Capture One"
-- Your previous code to select photos and merge to HDR goes here
-- Wait until the HDR processing is complete
repeat
tell application "System Events"
if not (exists menu item "Merge to HDR" of menu 1 of menu bar item "Photos" of menu bar 1 of process "Capture One") then
exit repeat
end if
end tell
delay 1 -- Wait for 1 second before checking again
end repeat
-- Select previous set and repeat the process if needed
-- Your code to select previous set goes here
end tellIn this modified script, the
repeat
loop checks if the "Merge to HDR" menu item is still present in the Photos menu of Capture One rta check. If it doesn't exist, it means that the HDR processing is complete, and the script exits the loop. This way, you don't need to use a fixed delay, and the script will proceed as soon as the processing is done.0 -
Marsh Ray Does this script work with 5 or 7 shots?
0 -
1. Using the busy property:
This method checks the busy property of Capture One to see if it's currently processing images.
AppleScript
tell application "Capture One"
tell current document
repeat with theVariant in (reverse order of variants)
tell theVariant
select theVariant
merge to HDR with default
repeat while busy is true
delay 1 -- Short delay to avoid overloading the CPU
end repeat
end tell
end repeat
end tell
end tell
Use code with caution.
content_copy
Explanation:We loop through the variants in reverse order (latest to oldest) to ensure proper HDR stacking.
Inside the loop, we merge the selected variant to HDR and then enter a repeat loop.
The repeat loop continues as long as the busy property of Capture One is true, indicating it's processing images.
A short delay of 1 second is added within the repeat loop to avoid overloading the CPU with constant checks.
2. Using the number of processing tasks property:Another approach involves checking the number of processing tasks property. This method might be slightly faster than the busy property check.
AppleScript
tell application "Capture One"
tell current document
set initialTasks (number of processing tasks)
repeat with theVariant in (reverse order of variants)
tell theVariant
select theVariant
merge to HDR with default
repeat while (number of processing tasks) > initialTasks
delay 1 -- Short delay to avoid overloading the CPU
end repeat
end tell
end repeat
end tell
end tell
Use code with caution.
content_copy
Explanation:We store the initial number of processing tasks before starting qatar id check, the loop.
Inside the loop, we merge the selected variant to HDR.
Then, a repeat loop continues as long as the current number of processing tasks is greater than the initial number.
This indicates that Capture One is still processing images for this HDR stack.0
Please sign in to leave a comment.
Comments
5 comments