+ RGBImage tmp(_width / scale, _height / scale);
+
+ for(int y = 0; y < _height / scale; y++) {
+ for(int x = 0; x < _width / scale; x++) {
+ int sr = 0, sg = 0, sb = 0;
+ for(int yy = y * scale; yy < (y + 1) * scale; yy++) {
+ for(int xx = x * scale; xx < (x + 1) * scale; xx++) {
+ sr += int(_bit_plans[RED][yy][xx]);
+ sg += int(_bit_plans[GREEN][yy][xx]);
+ sb += int(_bit_plans[BLUE][yy][xx]);
+ }
+ }
+
+ tmp.set_pixel(x, y,
+ sr / (scale * scale), sg / (scale * scale), sb / (scale * scale));
+ }
+ }
+
+ tmp.write_jpg(filename, quality);