Ejemplo n.º 1
0
 def test_off_by_one_bug(self):
     img_path = self.create_unique_image('best-fit-off-by-one-bug.png')
     crop = Crop(Box(x1=0, y1=0, x2=960, y2=915), img_path)
     size = Size('960', w=960, h=594)
     new_crop = size.fit_to_crop(crop)
     self.assertNotEqual(new_crop.box.h, 593, "Calculated best fit height is 1 pixel too short")
     self.assertEqual(new_crop.box.h, 594)
Ejemplo n.º 2
0
 def test_size_order_bug(self):
     img_path = self.create_unique_image('size-order-bug.png')
     crop = Crop(Box(x1=160, y1=0, x2=800, y2=640), img_path)
     size = Size('650', w=650, min_h=250)
     new_crop = size.fit_to_crop(crop)
     self.assertGreaterEqual(new_crop.box.w, 650,
         "Calculated best fit (%d) didn't get required width (650)" % new_crop.box.w)
Ejemplo n.º 3
0
 def crop_size(self):
     from cropduster.resizing import Size
     size_json = self.get('size', {}).get('json') or None
     if size_json:
         return size_json
     size_w = self.get('size', {}).get('w') or None
     size_h = self.get('size', {}).get('h') or None
     if not size_w and not size_h:
         return None
     return Size('crop', w=size_w, h=size_h)
Ejemplo n.º 4
0
def object_hook(dct):
    if dct.get('__type__') in ['Size', 'cropduster.resizing.Size']:
        return Size(name=dct.get('name'),
                    label=dct.get('label'),
                    w=dct.get('w'),
                    h=dct.get('h'),
                    min_w=dct.get('min_w'),
                    min_h=dct.get('min_h'),
                    max_w=dct.get('max_w'),
                    max_h=dct.get('max_h'),
                    retina=dct.get('retina'),
                    auto=dct.get('auto'),
                    required=dct.get('required'))
    return dct
Ejemplo n.º 5
0
    def test_get_min_size(self):
        from cropduster.utils import get_min_size
        from cropduster.resizing import Size

        sizes = [
            Size('a', w=200, h=200),
            Size('b', w=100, h=300),
            Size('c', w=20, h=20)
        ]
        self.assertEqual(get_min_size(sizes), (200, 300))

        sizes = [
            Size('a', min_w=200, min_h=200, max_h=500),
            Size('b', min_w=100, min_h=300),
            Size('c', w=20, h=20)
        ]
        self.assertEqual(get_min_size(sizes), (200, 300))