def test_background_larger_crop_with_transparent(self): img = ImageSource(Image.new('RGBA', (356, 266), (130, 140, 120, 255))) img_opts = ImageOptions('RGBA', transparent=True) splitter = TileSplitter(img, img_opts) tile = splitter.get_tile((0, 0), (256, 256)) eq_(tile.size, (256, 256)) colors = tile.as_image().getcolors() eq_(colors, [(256*256, (130, 140, 120, 255))]) tile = splitter.get_tile((256, 256), (256, 256)) eq_(tile.size, (256, 256)) colors = tile.as_image().getcolors() eq_(sorted(colors), [(10*100, (130, 140, 120, 255)), (256*256-10*100, (255, 255, 255, 0))])
def split_meta_tiles(meta_tile, tiles, tile_size, image_opts): try: # TODO png8 # if not self.transparent and format == 'png': # format = 'png8' splitter = TileSplitter(meta_tile, image_opts) except IOError: # TODO raise split_tiles = [] for tile in tiles: tile_coord, crop_coord = tile if tile_coord is None: continue data = splitter.get_tile(crop_coord, tile_size) new_tile = Tile(tile_coord, cacheable=meta_tile.cacheable) new_tile.source = data split_tiles.append(new_tile) return split_tiles
def test_background_larger_crop_with_transparent(self): img = ImageSource(Image.new("RGBA", (356, 266), (130, 140, 120, 255))) img_opts = ImageOptions("RGBA", transparent=True) splitter = TileSplitter(img, img_opts) tile = splitter.get_tile((0, 0), (256, 256)) assert tile.size == (256, 256) colors = tile.as_image().getcolors() assert colors == [(256 * 256, (130, 140, 120, 255))] tile = splitter.get_tile((256, 256), (256, 256)) assert tile.size == (256, 256) colors = tile.as_image().getcolors() assert sorted(colors) == [ (10 * 100, (130, 140, 120, 255)), (256 * 256 - 10 * 100, (255, 255, 255, 0)), ]