示例#1
0
 def test_target_size_repositions_result_inside_variant_ratio(self):
     variant = Variant(id='wide', focus_x=5.0 / 16, focus_y=3.0 / 8,
                       zoom=1, aspect_ratio='8:1')
     self.assertImage([
         '  x     ',
         '        ',
     ], self.transform.create_variant_image(variant, (8, 2)))
 def test_fits_larger_side_of_mask_to_image_size(self):
     variant = Variant(id='square',
                       focus_x=0.5,
                       focus_y=0.5,
                       zoom=1,
                       aspect_ratio='1:1')
     image = self.transform.create_variant_image(variant)
     self.assertEqual((8, 8), image.getImageSize())
 def test_ratio_original_uses_ratio_of_source_image(self):
     variant = Variant(id='original',
                       focus_x=5.0 / 16,
                       focus_y=3.0 / 8,
                       zoom=0.5,
                       aspect_ratio='original')
     self.assertImage(['        ', '  x     ', '        ', '        '],
                      self.transform.create_variant_image(variant))
 def test_does_not_exceed_maximum_size(self):
     variant = Variant(id='square',
                       focus_x=0.5,
                       focus_y=0.5,
                       zoom=1,
                       aspect_ratio='1:1')
     self.transform.MAXIMUM_IMAGE_SIZE = 5
     image = self.transform.create_variant_image(variant, size=(10, 10))
     self.assertEqual((5, 5), image.getImageSize())
示例#5
0
 def test_zoom_scales_image_and_respects_focus_point(self):
     variant = Variant(id='square', focus_x=5.0 / 16, focus_y=3.0 / 8,
                       zoom=0.5, aspect_ratio='1:1')
     self.assertImage([
         '    ',
         ' x  ',
         '    ',
         '    ',
     ], self.transform.create_variant_image(variant))
示例#6
0
 def test_no_size_matches_returns_none(self):
     from zeit.content.image.variant import Variants, Variant
     with mock.patch.object(Variants,
                            'values',
                            return_value=[
                                Variant(name='foo',
                                        id='small',
                                        max_size='100x100')
                            ]):
         self.assertEqual(None,
                          self.group.get_variant_by_size('foo__9999x9999'))
示例#7
0
 def test_focus_point_after_crop_has_same_relative_position_as_before(self):
     variant = Variant(id='square', focus_x=5.0 / 16, focus_y=3.0 / 8,
                       zoom=1, aspect_ratio='1:1')
     self.assertImage([
         '        ',
         '        ',
         '  x     ',
         '        ',
         '        ',
         '        ',
         '        ',
         '        ',
     ], self.transform.create_variant_image(variant))
示例#8
0
 def test_image_enhancements_are_applied_and_change_image(self):
     # Brightness of 0.0 makes image black
     variant = Variant(id='square', focus_x=5.0 / 16, focus_y=3.0 / 8,
                       zoom=1, aspect_ratio='2:1', brightness=0.0)
     self.assertImage([
         'xxxxxxxxxxxxxxxx',
         'xxxxxxxxxxxxxxxx',
         'xxxxxxxxxxxxxxxx',
         'xxxxxxxxxxxxxxxx',
         'xxxxxxxxxxxxxxxx',
         'xxxxxxxxxxxxxxxx',
         'xxxxxxxxxxxxxxxx',
         'xxxxxxxxxxxxxxxx',
     ], self.transform.create_variant_image(variant))
示例#9
0
    def test_variant_fill_color_is_applied_if_image_has_alpha_channel(self):
        img = zeit.content.image.testing.create_local_image(
            'Frame.PNG', 'tests/')
        transform = zeit.content.image.interfaces.ITransform(img)
        variant = Variant(
            id='square', focus_x=0.5, focus_y=0.5, zoom=1, aspect_ratio='1:1')

        self.assertImage([
            '        ',
            ' rrrrrr ',
            ' rrrrrr ',
            ' rrrrrr ',
            ' rrrrrr ',
            ' rrrrrr ',
            ' rrrrrr ',
            '        ',
        ], transform.create_variant_image(variant, fill_color='ff0000'))
示例#10
0
    def test_all_image_enhancements_are_applied_to_variant_image(self):
        from mock import patch
        import PIL.Image

        variant = Variant(
            id='square', focus_x=0.5, focus_y=0.5, zoom=1, aspect_ratio='2:1',
            brightness=0.1, contrast=0.2, saturation=0.3, sharpness=0.4)

        # Prepare side effect to return the image given to Image Enhancement
        def return_image(degenerated_image, original_image, alpha):
            return original_image

        with patch.object(PIL.Image, 'blend', wraps=return_image) as blend:
            self.transform.create_variant_image(variant)

        factors = [list(x)[0][2] for x in blend.call_args_list]
        self.assertEqual(4, blend.call_count)
        self.assertEqual([0.1, 0.2, 0.3, 0.4], sorted(factors))