Adds Crop and Watermark mutations

This commit is contained in:
Mark Hoekveen
2019-03-06 20:07:00 +01:00
parent 3ffb39ea73
commit f2466a63ec
3 changed files with 40 additions and 2 deletions
+37
View File
@@ -101,4 +101,41 @@ public:
string ToString() {
return "Brighten";
}
};
//shaves off some pixels from the bottomright edge of the image
class Crop : public Mutation {
public:
Image * getMutated(Image* img) {
Image* mut = new Image(*img);
ssize_t n = mut->rows();
ssize_t m = mut->columns();
float shave = 0.1;
n *= 1.0 - shave;
m *= 1.0 - shave;
mut->crop(Geometry(m, n, 0, 0));
return mut;
}
string ToString() {
return "Crop";
}
};
//Adds a logo to the top-left corner of the image
class Watermark : public Mutation {
public:
Watermark() {
watermark = new Image;
watermark->read("watermark.png");
}
Image * getMutated(Image* img) {
Image* mut = new Image(*img);
mut->composite(*watermark, "+10+10", OverCompositeOp);
return mut;
}
string ToString() {
return "Watermark";
}
private:
Image* watermark;
};