fuji-recipes
Version:
A library to extract film simulation data from EXIF
61 lines (56 loc) • 2.96 kB
text/typescript
import { Buffer } from 'buffer';
type ValueOf<T> = T[keyof T];
declare const WHITE_BALANCE_VALUES: {
readonly 0: "Auto";
readonly 1: "Auto (white priority)";
readonly 2: "Auto (ambiance priority)";
readonly 256: "Daylight";
readonly 512: "Cloudy";
readonly 768: "Daylight Fluorescent";
readonly 769: "Day White Fluorescent";
readonly 770: "White Fluorescent";
readonly 771: "Warm White Fluorescent";
readonly 772: "Living Room Warm White Fluorescent";
readonly 1024: "Incandescent";
readonly 1280: "Flash";
readonly 1536: "Underwater";
readonly 3840: "Custom";
readonly 3841: "Custom2";
readonly 3842: "Custom3";
readonly 3843: "Custom4";
readonly 3844: "Custom5";
readonly 4080: "Kelvin";
};
type WhiteBalance = ValueOf<typeof WHITE_BALANCE_VALUES>;
type WhiteBalanceFineTune = '-9' | '-8' | '-7' | '-6' | '-5' | '-4' | '-3' | '-2' | '-1' | '0' | '+1' | '+2' | '+3' | '+4' | '+5' | '+6' | '+7' | '+8' | '+9';
declare const DYNAMIC_RANGE_SETTING_VALUES: {
readonly 0: "Auto";
readonly 1: "Manual";
readonly 256: "Standard (100%)";
readonly 512: "Wide1 (230%)";
readonly 513: "Wide2 (400%)";
readonly 32768: "Film Simulation";
};
type DynamicRangeSetting = ValueOf<typeof DYNAMIC_RANGE_SETTING_VALUES>;
/**
* Get the recipe from a Fujifilm maker note.
* @param makerNote - The maker note as a buffer.
*/
declare function getRecipe(makerNote: Buffer | number[]): {
FilmMode: "F0/Standard (Provia)" | "F1/Studio Portrait" | "F1a/Studio Portrait Enhanced Saturation" | "F1b/Studio Portrait Smooth Skin Tone (Astia)" | "F1c/Studio Portrait Increased Sharpness" | "F2/Fujichrome (Velvia)" | "F3/Studio Portrait Ex" | "F4/Velvia" | "Pro Neg. Std" | "Pro Neg. Hi" | "Classic Chrome" | "Eterna" | "Classic Negative" | "Bleach Bypass" | "Nostalgic Neg" | "Reala ACE";
GrainEffectRoughness: "Off" | "Weak" | "Strong";
GrainEffectSize: "Off" | "Small" | "Large";
ColorChromeEffect: "Off" | "Weak" | "Strong";
ColorChromeFxBlue: "Off" | "Weak" | "Strong";
WhiteBalance: WhiteBalance | `${number}K`;
Red: WhiteBalanceFineTune;
Blue: WhiteBalanceFineTune;
DynamicRange: DynamicRangeSetting | "DR100" | "DR200" | "DR400";
HighlightTone: "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2";
ShadowTone: "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2";
Saturation: "Film Simulation" | "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4" | "Low" | "None (B&W)" | "B&W Red Filter" | "B&W Yellow Filter" | "B&W Green Filter" | "B&W Sepia" | "Acros" | "Acros Red Filter" | "Acros Yellow Filter" | "Acros Green Filter";
Sharpness: "Film Simulation" | "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4" | "n/a";
NoiseReduction: "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4";
Clarity: "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4" | "-5";
} | null;
export { getRecipe as default, getRecipe };