public void load(Boolean FlipVertically, Boolean FlipHorizontally) {		
		ContainsPixels = true;
		if(SIZEY >= SIZEX) {
			for(int y = 0; y < SIZEY; y++) {
				for (int x = 0; x < SIZEX; x++) {
					pixels[x+y*SIZE] = sheet.pixels[(x + this.x) + (y + this.y) * sheet.SIZE];
				}
			}
		} else {
			for (int x = 0; x < SIZEX; x++) {
				for(int y = 0; y < SIZEY; y++) {
					pixels[x+y*SIZE] = sheet.pixels[(x + this.x) + (y + this.y) * sheet.SIZE];
				}
			}
		}
		
		if(FlipVertically) {
			BufferedImage image = new BufferedImage(SIZEX, SIZEY, BufferedImage.TYPE_INT_RGB);
			image.setRGB(0, 0, SIZEX, SIZEY, pixels, 0, SIZE);
			AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
			tx.translate(0, -image.getHeight(null));
			AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
			image = op.filter(image, null);
			image.getRGB(0, 0, SIZEX, SIZEY, pixels, 0, SIZE);
		}
		
		if(FlipHorizontally) {
			BufferedImage image = new BufferedImage(SIZEX, SIZEY, BufferedImage.TYPE_INT_RGB);
			image.setRGB(0, 0, SIZEX, SIZEY, pixels, 0, SIZE);
			AffineTransform tx = AffineTransform.getScaleInstance(-1, 1);
			tx.translate(-image.getWidth(null), 0);
			AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
			image = op.filter(image, null);
			image.getRGB(0, 0, SIZEX, SIZEY, pixels, 0, SIZE);
		}
	}