Exemplo n.º 1
0
    def test_crop(self):
        context = ImageTransform((640, 480))
        cropped = context.crop(Rect(200, 100, 300, 200))

        vector = Vector(250, 150)
        transformed = cropped.transform_vector(vector)

        self.assertEqual(transformed, Vector(50, 50))

        untransformed = cropped.untransform_vector(transformed)

        self.assertEqual(untransformed, vector)
Exemplo n.º 2
0
    def test_resize(self):
        context = ImageTransform((640, 480))
        resized = context.resize((320, 240))

        vector = Vector(100, 200)
        transformed = resized.transform_vector(vector)

        self.assertEqual(transformed, Vector(50, 100))

        untransformed = resized.untransform_vector(transformed)

        self.assertEqual(untransformed, vector)
Exemplo n.º 3
0
    def test_resize_then_crop(self):
        context = ImageTransform((640, 480))
        resized = context.resize((320, 240))
        cropped = resized.crop(Rect(200, 100, 300, 200))

        vector = Vector(500, 300)
        transformed = cropped.transform_vector(vector)

        self.assertEqual(transformed, Vector(50, 50))

        untransformed = cropped.untransform_vector(transformed)

        self.assertEqual(untransformed, vector)
Exemplo n.º 4
0
    def untransform_vector(self, vector):
        """
        Transforms the given vector back to the coordinate space of the source image.

        This performs the inverse of `transform_vector`. Use this to find where a point
        in the final cropped/resized image originated from in the source image.

        Returns a new vector.
        """
        return Vector(vector.x / self.scale[0] - self.offset[0],
                      vector.y / self.scale[1] - self.offset[1])
Exemplo n.º 5
0
    def transform_vector(self, vector):
        """
        Transforms the given vector into the coordinate space of the final image.

        Use this to find out where a point on the source image would end up in the
        final image after cropping/resizing has been performed.

        Returns a new vector.
        """
        return Vector((vector.x + self.offset[0]) * self.scale[0],
                      (vector.y + self.offset[1]) * self.scale[1])
Exemplo n.º 6
0
 def test_set_centroid_with_vector(self):
     rect = Rect(100, 150, 200, 350)
     rect.centroid = Vector(500, 500)
     self.assertEqual(rect, (450, 400, 550, 600))
Exemplo n.º 7
0
 def test_set_size_with_vector(self):
     rect = Rect(100, 150, 200, 350)
     rect.size = Vector(200, 400)
     self.assertEqual(rect, (50, 50, 250, 450))