1 #include "pftypes.hh"
2 #include "photoflow.hh"
3
4 template<PF::colorspace_t CS>
5 int PF::ColorspaceInfo<CS>::NCH = 1;
6
7
8 template<>
9 int PF::ColorspaceInfo<PF::PF_COLORSPACE_RAW>::NCH = 1;
10
11 template<>
12 int PF::ColorspaceInfo<PF::PF_COLORSPACE_GRAYSCALE>::NCH = 1;
13
14 template<>
15 int PF::ColorspaceInfo<PF::PF_COLORSPACE_RGB>::NCH = 3;
16
17 template<>
18 int PF::ColorspaceInfo<PF::PF_COLORSPACE_LAB>::NCH = 3;
19
20 template<>
21 int PF::ColorspaceInfo<PF::PF_COLORSPACE_CMYK>::NCH = 4;
22
23
24
convert_colorspace(VipsInterpretation interpretation)25 PF::colorspace_t PF::convert_colorspace(VipsInterpretation interpretation)
26 {
27 switch(interpretation) {
28 case VIPS_INTERPRETATION_B_W:
29 case VIPS_INTERPRETATION_GREY16:
30 return PF::PF_COLORSPACE_GRAYSCALE;
31 break;
32 case VIPS_INTERPRETATION_MULTIBAND:
33 return PF::PF_COLORSPACE_MULTIBAND;
34 break;
35 case VIPS_INTERPRETATION_RGB:
36 case VIPS_INTERPRETATION_sRGB:
37 case VIPS_INTERPRETATION_RGB16:
38 case VIPS_INTERPRETATION_scRGB:
39 return PF::PF_COLORSPACE_RGB;
40 break;
41 case VIPS_INTERPRETATION_LAB:
42 return PF::PF_COLORSPACE_LAB;
43 break;
44 case VIPS_INTERPRETATION_CMYK:
45 return PF::PF_COLORSPACE_CMYK;
46 break;
47 default:
48 return PF::PF_COLORSPACE_UNKNOWN;
49 }
50 }
51
52
53
54
Property(std::string name,PF::OpParBase * par)55 PF::Property<PF::blendmode_t>::Property(std::string name, PF::OpParBase* par):
56 PF::PropertyBase(name, par)
57 {
58 add_enum_value(PF_BLEND_PASSTHROUGH,"PF_BLEND_PASSTHROUGH",_("Passthrough"));
59 add_enum_value(PF_BLEND_NORMAL,"PF_BLEND_NORMAL",_("Normal"));
60 add_enum_value(PF_BLEND_LUMINANCE,"PF_BLEND_LUMINANCE",_("Luminance"));
61 add_enum_value(PF_BLEND_COLOR,"PF_BLEND_COLOR",_("Color"));
62 add_enum_value(PF_BLEND_LCH_L,"PF_BLEND_LCH_L",_("L (LCH)"));
63 add_enum_value(PF_BLEND_LCH_C,"PF_BLEND_LCH_C",_("C (LCH)"));
64 add_enum_value(PF_BLEND_LCH_H,"PF_BLEND_LCH_H",_("H (LCH)"));
65 add_enum_value(PF_BLEND_ADD,"PF_BLEND_ADD","Add");
66 add_enum_value(PF_BLEND_SUBTRACT,"PF_BLEND_SUBTRACT","Subtract");
67 add_enum_value(PF_BLEND_MULTIPLY,"PF_BLEND_MULTIPLY",_("Multiply"));
68 add_enum_value(PF_BLEND_DIVIDE,"PF_BLEND_DIVIDE",_("Divide"));
69 //add_enum_value(PF_BLEND_SEP1,"PF_BLEND_SEP1","Separator");
70 add_enum_value(PF_BLEND_GRAIN_EXTRACT,"PF_BLEND_GRAIN_EXTRACT",_("Grain extract"));
71 add_enum_value(PF_BLEND_GRAIN_MERGE,"PF_BLEND_GRAIN_MERGE",_("Grain merge"));
72 add_enum_value(PF_BLEND_OVERLAY,"PF_BLEND_OVERLAY",_("Overlay"));
73 //add_enum_value(PF_BLEND_OVERLAY_GIMP,"PF_BLEND_OVERLAY_GIMP",_("Overlay (Gimp)"));
74 add_enum_value(PF_BLEND_SOFT_LIGHT,"PF_BLEND_SOFT_LIGHT",_("Soft light"));
75 add_enum_value(PF_BLEND_HARD_LIGHT,"PF_BLEND_HARD_LIGHT",_("Hard light"));
76 add_enum_value(PF_BLEND_VIVID_LIGHT,"PF_BLEND_VIVID_LIGHT",_("Vivid light"));
77 add_enum_value(PF_BLEND_SCREEN,"PF_BLEND_SCREEN",_("Screen"));
78 add_enum_value(PF_BLEND_LIGHTEN,"PF_BLEND_LIGHTEN",_("Lighten"));
79 add_enum_value(PF_BLEND_DARKEN,"PF_BLEND_DARKEN",_("Darken"));
80 //add_enum_value(PF_BLEND_LUMI,"PF_BLEND_LUMI","Luminosity");
81 //set_enum_value(PF_BLEND_OV,"PF_BLEND_OV","Ov");
82 //set_enum_value(PF_BLEND_OV,"PF_BLEND_OV","Ov");
83 //set_enum_value(PF_BLEND_OV,"PF_BLEND_OV","Ov");
84 };
85
86
87
88
Property(std::string name,PF::OpParBase * par)89 PF::Property<PF::mask_blendmode_t>::Property(std::string name, PF::OpParBase* par):
90 PF::PropertyBase(name, par)
91 {
92 add_enum_value(PF_MASK_BLEND_NORMAL,"PF_MASK_BLEND_NORMAL",_("Mix"));
93 add_enum_value(PF_MASK_BLEND_UNION,"PF_MASK_BLEND_UNION",_("Union"));
94 add_enum_value(PF_MASK_BLEND_INTERSECTION,"PF_MASK_BLEND_INTERSECTION",_("Intersection"));
95 add_enum_value(PF_MASK_BLEND_MULTIPLY,"PF_MASK_BLEND_MULTIPLY",_("Multiply"));
96 add_enum_value(PF_MASK_BLEND_EXCLUSION,"PF_MASK_BLEND_EXCLUSION",_("Exclusion"));
97 };
98
99
100