def bounds(self) -> tuple[(int, ...)]:
    x_values = [p[0] for p in self.pixels]
    y_values = [p[1] for p in self.pixels]
    return (min(x_values), min(y_values), max(x_values), max(y_values))
def bounds(self) -> tuple[(int, ...)]:
    x_values = [p[0] for p in self.pixels]
    y_values = [p[1] for p in self.pixels]
    return (min(x_values), min(y_values), max(x_values), max(y_values))