def smart_resize(self, size): size = as_dimensions(size) canvas_size = copy.deepcopy(size) current_size = self.dimensions # Simple scaling if not (size.width and size.height): self.resize(size) else: # Find fit resolution scale_size = _dimensions_to_fit_image(current_size, canvas_size) self.resize(scale_size) if scale_size != canvas_size: canvas = Canvas.from_blank(canvas_size) canvas.paste(self) self._pil = canvas._pil return
def test_as_dimensions(self): coord = mathtypes.as_dimensions(100, 200) self.assertEqual(coord.width, 100) self.assertEqual(coord.height, 200)