Commit ed92518f authored by twanvl's avatar twanvl

recolor_image function can now be used with custom colors

parent f065a3ad
Function: flip_horizontal
DOC_MSE_VERSION: since 0.3.9
--Usage--
> flip_horizontal(input: image)
......
Function: flip_vertical
DOC_MSE_VERSION: since 0.3.9
--Usage--
> flip_vertical(input: image)
......
Function: invert_image
DOC_MSE_VERSION: since 0.3.9
--Usage--
> invert_image(input: image)
......
Function: recolor_image
DOC_MSE_VERSION: since 0.3.9
--Usage--
> recolor_image(input: image, color: color)
> recolor_image(input: image, red: color, green: color, blue: color, white: color)
Re-color an image:
* Red is replaced by the color
......@@ -13,14 +16,26 @@ Re-color an image:
This function is mostly intended to make symbols in a symbol font wich can match the text color.
--Parameters--
! Parameter Type Description
| @input@ [[type:image]] Image to recolor.
| @color@ [[type:color]] Color by which to replace red.
Or
! Parameter Type Description
| @input@ [[type:image]] Image to recolor.
| @red@ [[type:color]] Color by which to replace red.
| @green@ [[type:color]] Color by which to replace green.
| @blue@ [[type:color]] Color by which to replace blue.
| @white@ [[type:color]] Color by which to replace white.
--Examples--
> recolor_image("symbol1.png", color: rgb(180,0,0)) == [[Image]]
> recolor_image("symbol1.png", color: rgb(180,0,0)) == [[Image]]
>>> recolor_image(<img src="symbol1.png" alt='"symbol1.png"' style="border:1px solid black;vertical-align:middle;margin:1px;" />, color: rgb(180,0,0)) == <img src="symbol1_red.png" alt='"symbol1_red.png"' style="border:1px solid black;vertical-align:middle;margin:1px;" />
> recolor_image("symbol1.png", color: rgb(100,255,0)) == [[Image]]
> recolor_image("symbol1.png", color: rgb(100,255,0)) == [[Image]]
>>> recolor_image(<img src="symbol1.png" alt='"symbol1.png"' style="border:1px solid black;vertical-align:middle;margin:1px;" />, color: rgb(100,255,0)) == <img src="symbol1_green.png" alt='"symbol1_green.png"' style="border:1px solid black;vertical-align:middle;margin:1px;" />
Custom choices for green, blue and white are also possible:
>>> recolor_image(<img src="symbol1.png" alt='"symbol1.png"' style="border:1px solid black;vertical-align:middle;margin:1px;" />, red:rgb(0,170,0), green:rgb(200,0,255), blue:rgb(128,0,0), white:rgb(220,255,0))
>>> == <img src="symbol1_recolor_custom.png" alt='"symbol1_recolor_custom.png"' style="border:1px solid black;vertical-align:middle;margin:1px;" />
Function: flip_vertical
Function: rotate
DOC_MSE_VERSION: since 0.3.9
--Usage--
> rotate(input: image, angle: some_number)
......
Function: saturate
DOC_MSE_VERSION: since 0.3.9
--Usage--
> saturate(input: image, amount: saturation amount)
......
......@@ -221,6 +221,20 @@ bool RecolorImage::operator == (const GeneratedImage& that) const {
&& color == that2->color;
}
Image RecolorImage2::generate(const Options& opt) const {
Image img = image->generate(opt);
recolor(img, red,green,blue,white);
return img;
}
bool RecolorImage2::operator == (const GeneratedImage& that) const {
const RecolorImage2* that2 = dynamic_cast<const RecolorImage2*>(&that);
return that2 && *image == *that2->image
&& red == that2->red
&& green == that2->green
&& blue == that2->blue
&& white == that2->white;
}
// ----------------------------------------------------------------------------- : FlipImage
Image FlipImageHorizontal::generate(const Options& opt) const {
......
......@@ -227,6 +227,17 @@ class RecolorImage : public SimpleFilterImage {
private:
Color color;
};
/// Recolor an image, with custom colors
class RecolorImage2 : public SimpleFilterImage {
public:
inline RecolorImage2(const GeneratedImageP& image, Color red, Color green, Color blue, Color white)
: SimpleFilterImage(image), red(red), green(green), blue(blue), white(white)
{}
virtual Image generate(const Options& opt) const;
virtual bool operator == (const GeneratedImage& that) const;
private:
Color red,green,blue,white;
};
// ----------------------------------------------------------------------------- : FlipImage
......
......@@ -93,8 +93,15 @@ SCRIPT_FUNCTION(invert_image) {
SCRIPT_FUNCTION(recolor_image) {
SCRIPT_PARAM_C(GeneratedImageP, input);
SCRIPT_PARAM(Color, color);
return intrusive(new RecolorImage(input,color));
SCRIPT_OPTIONAL_PARAM(Color, red) {
SCRIPT_PARAM(Color, green);
SCRIPT_PARAM(Color, blue);
SCRIPT_PARAM_DEFAULT(Color, white, *wxWHITE);
return intrusive(new RecolorImage2(input,red,green,blue,white));
} else {
SCRIPT_PARAM(Color, color);
return intrusive(new RecolorImage(input,color));
}
}
SCRIPT_FUNCTION(enlarge) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment