def METHOD_NAME(self):
    colors = [
        (0, 0, 0),
        (128, 128, 128),
        (192, 192, 192),
        (255, 255, 255),
        (128, 0, 0),
        (255, 0, 0),
        (128, 128, 0),
        (255, 255, 0),
        (0, 128, 0),
        (0, 255, 0),
        (0, 128, 128),
        (0, 255, 255),
        (0, 0, 128),
        (0, 0, 255),
        (128, 0, 128),
        (255, 0, 255),
    ]
    total = 0
    pixel_sum = 0
    iterations = 1
    for counter in range(
        iterations
    ):  # perform only X iterations of clustering, that should be enough
        sums = {}
        counts = {}
        for c in colors:
            sums[c] = [0, 0, 0]
            counts[c] = 0
        total = 0
        pixel_sum = 0
        for x in range(0, self.resized.size[0], 2):
            for y in range(0, self.resized.size[1], 2):
                total += 4
                pixel = self.img_data[x, y]
                if not tuple == type(pixel):
                    pixel = (pixel, pixel, pixel)
                pixel_sum += sum(pixel) / 3
                color1 = min((DominantColors.diff(c, pixel), c) for c in colors)[1]
                if len(colors) > 1:
                    color2 = min(
                        (DominantColors.diff(c, pixel), c) for c in colors if c != color1
                    )[1]
                else:
                    color2 = color1
                for i in [0, 1, 2]:
                    sums[color1][i] += 3 * pixel[i]
                    sums[color2][i] += 1 * pixel[i]
                counts[color1] += 3
                counts[color2] += 1
        colors = [c for c in colors if counts[c] > 0]
        if counter == iterations - 1:
            colors = [
                (
                    counts[c],
                    (sums[c][0] // counts[c], sums[c][1] // counts[c], sums[c][2] // counts[c]),
                )
                for c in colors
            ]
        else:
            colors = [
                (sums[c][0] // counts[c], sums[c][1] // counts[c], sums[c][2] // counts[c])
                for c in colors
            ]
    s = sorted(colors, key=lambda x: x[0], reverse=True)
    return total, s, pixel_sum * 4 // total, self.get_width(), self.get_height()