Exposure value from aperture and shutter calculator
Turn an aperture and a shutter time into one exposure value at ISO 100: f/8 at 1/125 s, entered as 0.008, gives EV 12.966, so you can compare two camera settings in stops. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- F number
- 8
- Shutter time
- 0.008
- Exposure value
- 12.9657842847
- Exposure value rounded
- 12.966
This exposure value calculator turns an aperture f-number and a shutter time into one comparable photographic exposure value at the conventional ISO 100 reference. It applies the base-two logarithm of aperture squared divided by exposure time, exactly matching the familiar EV equation used in photography tables and technical discussions. Enter a positive f-number and a positive time in seconds to receive the full computed value, a three-decimal display value, and the formula used.
Understand the aperture-and-shutter exposure value
Exposure value compresses one aperture and shutter combination into a single number, making different camera settings easier to compare. This calculator uses EV equals log base two of N squared divided by t, where N is the aperture f-number and t is shutter time measured in seconds. The definition assumes the standard ISO 100 reference because sensitivity is not an input to this focused calculation.
Squaring the f-number reflects how aperture area changes, while dividing by time accounts for the duration during which light reaches the sensor or film. The base-two logarithm expresses the answer in stops: a difference of one EV represents a factor of two in the N-squared-over-time ratio. For example, reducing exposure time by half while leaving aperture unchanged increases the calculated EV by one.
Closing the aperture by one full stop also increases EV by one when time remains fixed. The number describes the selected settings rather than judging whether a photograph will look correct, since suitable exposure also depends on scene luminance, sensitivity, filters, and creative intent.
Compare settings accurately in practical workflows
Use this calculator when aperture and shutter time are already known and you want a clean ISO-100 EV for comparison. A photographer can calculate two candidate combinations and subtract their exposure values to quantify the difference in stops. An instructor can hold aperture constant, halve shutter time, and demonstrate why the returned EV rises by exactly one.
Remember that equal EV values represent equivalent aperture-and-time ratios under this definition; they do not guarantee identical images. Depth of field, subject motion, lens transmission, stabilization, and sensor sensitivity can still make equivalent combinations behave differently in practice. This tool deliberately does not add an ISO adjustment, estimate scene brightness, recommend settings, or simulate a light meter.
Those are separate questions. For quick individual work, use the browser calculation.
What you can do with it
Compare equivalent camera settings
Calculate the EV for two aperture-and-time combinations and compare their difference in photographic stops.
Teach the exposure triangle
Demonstrate how doubling or halving shutter time changes exposure value when aperture remains fixed.
Normalize settings in software
Convert stored f-numbers and shutter durations into deterministic ISO-100 EV values for tables, tests, or sorting.
FAQ
What formula does this exposure value calculator use?
It uses EV = log2(N²/t), where N is the f-number and t is shutter time in seconds.
Does this calculator include ISO?
No. It calculates the conventional aperture-and-shutter exposure value referenced to ISO 100.
How should I enter shutter time?
Enter seconds as a positive number, such as 1 for one second, 0.125 for one eighth, or 0.008 for approximately one one-hundred-and-twenty-fifth.
Why are zero and negative settings rejected?
The logarithm requires a positive aperture-squared-to-time ratio, so non-positive settings cannot produce a finite real EV.
What does a one-EV difference mean?
A difference of one EV is one stop, corresponding to a factor of two in the aperture-squared-over-time ratio.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/optics/exposure-value-from-settings \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"f_number":8,"shutter_time":0.008}'const res = await fetch("https://api.kit.forhosting.com/optics/exposure-value-from-settings", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"f_number": 8,
"shutter_time": 0.008
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/exposure-value-from-settings",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"f_number": 8,
"shutter_time": 0.008
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/exposure-value-from-settings", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"f_number":8,"shutter_time":0.008}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"f_number":8,"shutter_time":0.008}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/exposure-value-from-settings", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"f_number": 8,
"shutter_time": 0.008
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.exposure_value_from_settings",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
The calculation is deterministic, local arithmetic with no network dependency, and API processing costs $0.002 per successful item.
Enter valid settings and interpret the result
Both fields are required. Use the unrounded field for calculations or automated tests and the rounded field for display. The formula field explicitly identifies the equation so saved results remain self-explanatory. Provide f_number as a positive finite number such as 1.4, 2.8, 5.6, 8, or 16. Provide shutter_time as a positive finite duration in seconds, so one second is 1, one eighth of a second is 0.125, and one one-hundred-and-twenty-fifth of a second is commonly entered as 0.008. Zero, negative values, missing values, infinity, and nonnumeric text are rejected with an invalid_input error because they cannot define a finite real exposure value. A successful response echoes the normalized settings and reports exposure_value at JavaScript numeric precision. It also includes exposure_value_rounded, rounded to three decimal places for tables, labels, and human comparison.
Compare settings accurately in practical workflows
A developer can feed settings extracted from metadata into the API and store a normalized value for sorting or quality checks. For repeatable server workflows, the same deterministic contract is available through the API at $0.002 per successful item, allowing applications to rely on precisely the same arithmetic and validation behavior.