def test_initialcropping(self):
        self.assertEqual(self.image.cropping,
                         ','.join(map(lambda d: str(d),
                                      max_cropping(120, 100, self.width, self.height))))

        # free crop
        self.assertEqual(self.image.cropping_free,
                         ','.join(map(lambda d: str(d),
                                      max_cropping(120, 100,
                                                   self.width, self.height, True))))
Ejemplo n.º 2
0
    def test_initialcropping(self):
        self.assertEqual(
            self.image.cropping, ','.join(
                map(lambda d: str(d),
                    max_cropping(120, 100, self.width, self.height))))

        # free crop
        self.assertEqual(
            self.image.cropping_free, ','.join(
                map(lambda d: str(d),
                    max_cropping(120, 100, self.width, self.height, True))))
Ejemplo n.º 3
0
 def test_fk_initialcropping(self):
     image = ImageFK(image=self.image)
     image.save()
     self.assertEqual(
         image.cropping, ','.join(
             map(lambda d: str(d),
                 max_cropping(120, 100, self.width, self.height))))
Ejemplo n.º 4
0
def crop_artist_pictures(queryset):
    for artist in queryset:
        image = artist.photo
        if image:
            box = max_cropping(580, 580, image.width, image.height, False)
            artist.cropping = ','.join(map(lambda i: str(i), box))
            artist.save()
    def test_maxcropping(self):
        # normal crop
        self.assertEqual([0, 0, 400, 400], max_cropping(100, 100, 400, 400))
        self.assertEqual([100, 0, 300, 400], max_cropping(100, 200, 400, 400))
        self.assertEqual([0, 100, 400, 300], max_cropping(200, 100, 400, 400))

        # free crop
        self.assertEqual([0, 0, 400, 400], max_cropping(100, 100, 400, 400, True))
        self.assertEqual([0, 0, 400, 400], max_cropping(100, 200, 400, 400, True))
        self.assertEqual([0, 0, 400, 400], max_cropping(200, 100, 400, 400, True))

        # to small
        self.assertEqual([0, 0, 100, 100], max_cropping(200, 200, 100, 100))
        self.assertEqual([0, 25, 100, 75], max_cropping(200, 100, 100, 100))
        self.assertEqual([25, 0, 75, 100], max_cropping(100, 200, 100, 100))
Ejemplo n.º 6
0
    def test_maxcropping(self):
        # normal crop
        self.assertEqual([0, 0, 400, 400], max_cropping(100, 100, 400, 400))
        self.assertEqual([100, 0, 300, 400], max_cropping(100, 200, 400, 400))
        self.assertEqual([0, 100, 400, 300], max_cropping(200, 100, 400, 400))

        # free crop
        self.assertEqual([0, 0, 400, 400],
                         max_cropping(100, 100, 400, 400, True))
        self.assertEqual([0, 0, 400, 400],
                         max_cropping(100, 200, 400, 400, True))
        self.assertEqual([0, 0, 400, 400],
                         max_cropping(200, 100, 400, 400, True))

        # to small
        self.assertEqual([0, 0, 100, 100], max_cropping(200, 200, 100, 100))
        self.assertEqual([0, 25, 100, 75], max_cropping(200, 100, 100, 100))
        self.assertEqual([25, 0, 75, 100], max_cropping(100, 200, 100, 100))
Ejemplo n.º 7
0
    def initial_cropping(self, sender, instance, *args, **kwargs):
        """
        Override original `ImageRatioField.initial_cropping` as it fails on staging CI.
        Due to non existing images `ImageRatioField.initial_cropping` was failed with `FileNotFoundError`.
        In this method we caught `FileNotFoundError` and set `width` and `height` to 0 for non existing images.
        """
        for ratiofieldname in getattr(instance, 'ratio_fields', []):
            # cropping already set?
            if getattr(instance, ratiofieldname):
                continue

            # get image
            ratiofield = instance._meta.get_field(ratiofieldname)
            image = getattr(instance, ratiofield.image_field)
            if ratiofield.image_fk_field and image:  # image is ForeignKey
                # get the imagefield
                image = getattr(image, ratiofield.image_fk_field)
            if not image:
                continue

            # calculate initial cropping
            try:
                width, height = (image.width, image.height)
            except AttributeError:
                width, height = get_backend().get_size(image)
            # Catch non existing images
            except FileNotFoundError:
                width, height = (0, 0)

            try:
                # handle corrupt or accidentally removed images
                box = max_cropping(ratiofield.width,
                                   ratiofield.height,
                                   width,
                                   height,
                                   free_crop=ratiofield.free_crop)
                box = ','.join(map(lambda i: str(i), box))
            except IOError:
                box = ''
            setattr(instance, ratiofieldname, box)
 def test_fk_initialcropping(self):
     image = ImageFK(image=self.image)
     image.save()
     self.assertEqual(image.cropping,
                      ','.join(map(lambda d: str(d),
                                   max_cropping(120, 100, self.width, self.height))))