Diferencia de pasos de exposición
Esta calculadora de diferencia de exposición compara dos ajustes completos de cámara: apertura, duración de obturación e ISO.
Ejecutar — gratis
Convierte el cambio combinado en un número de pasos con signo para indicar si el segundo ajuste registra más o menos exposición que el primero. Un resultado positivo señala una segunda toma más luminosa; uno negativo, una toma más oscura; y cero indica combinaciones equivalentes. Las aportaciones separadas de apertura, obturación e ISO permiten revisar el cálculo, mientras que la validación rechaza valores ausentes, no finitos, iguales a cero o negativos.
Cómo compara la calculadora dos exposiciones
La exposición fotográfica depende de tres ajustes que actúan conjuntamente. La duración de obturación determina cuánto tiempo llega luz al sensor, el ISO modifica la sensibilidad registrada y la apertura regula la luz mediante el cuadrado del número f. La calculadora representa cada combinación con el valor proporcional ISO multiplicado por los segundos de obturación y dividido entre la apertura al cuadrado. Después divide la segunda exposición entre la primera y aplica el logaritmo en base dos a esa razón. Así obtiene la diferencia con signo expresada en pasos. Un paso positivo significa que la segunda combinación registra el doble de exposición relativa; uno negativo equivale a la mitad. La herramienta compara ajustes, pero no decide si una foto está correctamente expuesta, porque no recibe la luminosidad de la escena, los filtros, el flash, la medición ni la intención creativa. Todos los valores deben ser finitos y estrictamente positivos para que la razón y el logaritmo tengan sentido físico.
Cómo interpretar el resultado y sus componentes
El resultado principal, stops_difference, describe la segunda combinación respecto de la primera. Un valor positivo la clasifica como más luminosa, uno negativo como más oscura y cero como equivalente. exposure_ratio expresa la misma comparación como multiplicador. La respuesta también separa aperture_stops, shutter_stops e iso_stops, cuyas aportaciones con signo suman el total. Abrir el diafragma reduciendo el número f aporta pasos positivos; cerrarlo aporta pasos negativos. Alargar la obturación suma exposición y acortarla la resta. Aumentar el ISO aporta pasos positivos y reducirlo, negativos. Este desglose resulta útil cuando se modifican varios controles a la vez, pues una pérdida debida a la apertura puede compensarse mediante obturación e ISO. Son normales los resultados decimales cuando los valores no coinciden con incrementos enteros. La precisión se normaliza de forma estable para que llamadas repetidas y cálculos en el navegador produzcan el mismo JSON sin ocultar fracciones útiles.
Comprobaciones prácticas para planificar y revisar tomas
Utilice la calculadora cuando disponga de dos triángulos de exposición completos y necesite compararlos directamente, no cuando busque un ajuste desconocido. Puede contrastar una toma a pulso con otra sobre trípode, medir el cambio entre dos registros de metadatos o comprobar si la obturación y el ISO compensaron por completo una modificación de apertura. Introduzca la duración de obturación en segundos; por ejemplo, un ciento veinticincoavo se escribe como 0.008. Escriba la apertura como el número f del objetivo y el ISO como sensibilidad numérica. El orden importa: intercambiar ambas combinaciones invierte el signo, pero conserva la magnitud. Un resultado equivalente no implica el mismo desenfoque de movimiento, profundidad de campo o ruido. El algoritmo es determinista y no usa red, almacenamiento, aleatoriedad ni hora actual, por lo que sirve para clases, controles de producción, pruebas automatizadas y análisis de metadatos. Las solicitudes correctas por API cuestan $0.002; el mismo cálculo es gratuito en el navegador.
Qué puede hacer con ella
Comparar dos configuraciones de cámara
Mida el cambio de exposición con signo después de ajustar conjuntamente apertura, obturación e ISO.
Revisar metadatos fotográficos
Convierta dos grupos de valores EXIF en una diferencia de pasos y una aportación verificable de cada control.
Corregir ejercicios del triángulo de exposición
Compruebe si la segunda combinación de un ejercicio es equivalente, más luminosa o más oscura que la inicial.
Preguntas frecuentes
¿Qué significa una diferencia positiva de pasos?
Significa que la segunda combinación de apertura, obturación e ISO produce más exposición relativa. Un paso positivo equivale al doble.
¿Qué indica un resultado negativo?
Indica que la segunda combinación produce menos exposición relativa. Menos un paso corresponde a la mitad de la primera.
¿Pueden dos ajustes distintos dar cero pasos?
Sí. Apertura, obturación e ISO pueden compensarse y producir igual exposición relativa, aunque cambien la profundidad de campo, el movimiento y el ruido.
¿Cómo se introduce la velocidad de obturación?
Introduzca la duración en segundos como número positivo. Por ejemplo, un ciento veinticincoavo de segundo es 0.008.
¿Por qué se rechazan valores cero o negativos?
El número f, la duración y el ISO deben ser estrictamente positivos. Otros valores impiden calcular una razón y un logaritmo válidos.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/image/exposure-stops-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"aperture_1":4,"shutter_1":0.008,"iso_1":100,"aperture_2":5.6,"shutter_2":0.016,"iso_2":200}'const res = await fetch("https://api.kit.forhosting.com/image/exposure-stops-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"aperture_1": 4,
"shutter_1": 0.008,
"iso_1": 100,
"aperture_2": 5.6,
"shutter_2": 0.016,
"iso_2": 200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/exposure-stops-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"aperture_1": 4,
"shutter_1": 0.008,
"iso_1": 100,
"aperture_2": 5.6,
"shutter_2": 0.016,
"iso_2": 200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/exposure-stops-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"aperture_1":4,"shutter_1":0.008,"iso_1":100,"aperture_2":5.6,"shutter_2":0.016,"iso_2":200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"aperture_1":4,"shutter_1":0.008,"iso_1":100,"aperture_2":5.6,"shutter_2":0.016,"iso_2":200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/exposure-stops-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"aperture_1": 4,
"shutter_1": 0.008,
"iso_1": 100,
"aperture_2": 5.6,
"shutter_2": 0.016,
"iso_2": 200
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exposure_stops_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 15 |
max_megapixels | 12 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |