src/lib/types.ts 1.1 K raw
1
export interface BasicFilters {
2
  brightness: number;
3
  contrast: number;
4
  exposure: number;
5
  saturation: number;
6
  temperature: number;
7
  tint: number;
8
  highlights: number;
9
  shadows: number;
10
}
11
12
export interface CurvePoint {
13
  x: number;
14
  y: number;
15
}
16
17
export type CurveChannel = "rgb" | "r" | "g" | "b";
18
19
export interface CurvesState {
20
  rgb: CurvePoint[];
21
  r: CurvePoint[];
22
  g: CurvePoint[];
23
  b: CurvePoint[];
24
}
25
26
export interface FilterState {
27
  basic: BasicFilters;
28
  curves: CurvesState;
29
}
30
31
export const DEFAULT_BASIC: BasicFilters = {
32
  brightness: 100,
33
  contrast: 100,
34
  exposure: 0,
35
  saturation: 100,
36
  temperature: 0,
37
  tint: 0,
38
  highlights: 0,
39
  shadows: 0,
40
};
41
42
export const DEFAULT_CURVE: CurvePoint[] = [
43
  { x: 0, y: 0 },
44
  { x: 255, y: 255 },
45
];
46
47
export const DEFAULT_CURVES: CurvesState = {
48
  rgb: [...DEFAULT_CURVE],
49
  r: [...DEFAULT_CURVE],
50
  g: [...DEFAULT_CURVE],
51
  b: [...DEFAULT_CURVE],
52
};
53
54
export const DEFAULT_FILTER_STATE: FilterState = {
55
  basic: { ...DEFAULT_BASIC },
56
  curves: {
57
    rgb: [...DEFAULT_CURVE],
58
    r: [...DEFAULT_CURVE],
59
    g: [...DEFAULT_CURVE],
60
    b: [...DEFAULT_CURVE],
61
  },
62
};