def __init__(self, bin_size=DEFAULT_BIN_SIZE, images=None, bin_parameters=None):

        # Оставляем только изображения входящие по размеру в контейнер
        images = filter(lambda image: image.crop.size.less(bin_size) == (True, True), images)

        BinPacking.__init__(self,
                            bin_size=bin_size,
                            images=images,
                            bin_parameters=bin_parameters)
    def __init__(self, bin_size=DEFAULT_BIN_SIZE, images=None, bin_parameters=None):
        # Отсеиваем изображения размер которых больше или равен размеру контейнера
        images = filter(lambda image: image.crop.size.less(bin_size) == (True, True), images)

        # Ориентируем все изображения по вертикали
        def rotate(image):
            if image.crop.size.width > image.crop.size.height:
                image.rotated = True
            return image

        images = map(rotate, images)

        # Сортируем по высоте
        images = sorted(images, key=lambda im: im.crop.size.width if im.rotated else im.crop.size.height, reverse=True)

        BinPacking.__init__(self, bin_size=bin_size, images=images, bin_parameters=bin_parameters)
    def __init__(self, bin_size=DEFAULT_BIN_SIZE, images=None, bin_parameters=None):
        # Отсеиваем изображения которые больше размера контейнера
        images = filter(lambda image: image.crop.size.less(bin_size) == (True, True), images)

        BinPacking.__init__(self, bin_size=bin_size, images=images, bin_parameters=bin_parameters)