Automatic Time Stacking for Bursts

Ideas for improvements and requests for new features in XnView MP

Moderators: helmut, XnTriq, xnview

Automatic Time Stacking for Bursts

Postby m.Th. » Wed Mar 01, 2017 6:50 am

There is a common feature in many DAMs called stacking.

(Ok, there are two which are related: Stacking and Versioning - but let's keep the things simple.)

Stacking means the possibility to group several photos together - thing which is widely used for similar photos, especially for photos shot in bursts.

Look here to see how it looks in Lightroom a stack of 3 photos folded:

Xn Lr Stack folded.png
Xn Lr Stack folded.png (41 KiB) Viewed 36 times

And unfolded (expanded):

Xn Lr Stack UNfolded.png
Xn Lr Stack UNfolded.png (57.61 KiB) Viewed 36 times

There are a LOT of programs which provide this feature in a form or in another.

...and now look here: How many actual scenes do you see?

Xn Sequences.png

There are only three.

This is a big problem nowadays: in any photo journal which implies some sort of action, the photographer is forced to shoot bursts of photos in order to cover the moment and after that to choose the best one. There is a very common scenario - one of the biggest selling points of cameras nowadays being how many frames per second (fps) a camera is capable. (Hint: a medium camera is around 7-8 fps but it can reach till 30 fps!)

The problem with classical stacking is that it is a tedious, manual process.

However, in this case there is a simple solution: a On/Off filter called Hide Bursts... which will show all files if it is Off and show only the 1st file from a Burst if it is On.

The files from a burst are hidden if the difference between the DateTimeTaken EXIF value of two consecutive files is smaller than "n" seconds where "n" is an user-entered value stored in Tools | Settings and persisted between sessions.

The code is very simple: (very un-optimized & bad pseudo-code to show the idea)

Code: Select all
PrevDateTimeTaken = -1; //init to an impossible value

for i = 1 to myFiles.Count
  if myFiles[i].DateTimeTaken-PrevDateTimeTaken>n then //the difference is greater than the threshold = no burst
    Hide //actually the 'else' part will be empty - included here just for clarity
  end if
  PrevDateTimeTaken = myFiles[i].DateTimeTaken+myFiles[i].ExposureTime  (we need to add this too)
end for

This feature will be greatly appreciated by all action, sport, events, weddings (etc.) photogs.
m. Th.

The Ascetic Experience - The best photos and texts from Holy Mountain (Athos)

- Dark Themed XnViewMP 0.84 64bit & XnView 2.00 x64 on Win7 x64 -
User avatar
Posts: 1283
Joined: Wed Aug 16, 2006 6:31 am

Return to MP - Suggestions

Who is online

Users browsing this forum: No registered users and 2 guests