Esempio n. 1
0
    def convert(cls, files: List[str], cluster_size: int,
                max_colors: int) -> BytesIO:
        images: List[Image.Image] = [Image.open(f) for f in files]
        compressed = [
            Compressor.compress_pixels(im, cluster_size) for im in images
        ] if cluster_size > 1 else images
        color_mif, color_compressed = Compressor.compress_colors_collective(
            compressed, max_colors)

        mifs = [color_mif
                ] + [Im2Mif.mifify(im, color_mif) for im in color_compressed]
        names = ["colors.foo"] + [str(basename(f)) for f in files]

        ret = zip_(names, [StringIO(str(x)) for x in mifs])
        [x.close() for x in images + compressed + color_compressed if x]
        return ret