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