def _resize(self, resp): image = Image(resp.buffer, self.settings) opts = self._get_resize_options() resized = image.resize( self.get_argument("w"), self.get_argument("h"), **opts) self._forward_headers(resp.headers) for block in iter(lambda: resized.read(65536), b""): self.write(block) resized.close()
def _assert_expected_resize(self, case): with open(case["source_path"], "rb") as f: img = Image(f).resize(case["width"], case["height"], mode=case["mode"], background=case.get("background"), filter=case.get("filter"), position=case.get("position"), quality=case.get("quality")) with open(case["expected_path"], "rb") as expected: msg = "%s does not match %s" \ % (case["source_path"], case["expected_path"]) self.assertEqual(img.read(), expected.read(), msg)
def _process_response(self, resp): ops = self._get_operations() if "noop" in ops: return (resp.buffer, None) image = Image(resp.buffer) for operation in ops: if operation == "resize": self._image_resize(image) elif operation == "rotate": self._image_rotate(image) elif operation == "region": self._image_region(image) return (self._image_save(image), image.img.format)
def test_bad_format(self): path = os.path.join(DATADIR, "test-bad-format.gif") with open(path, "rb") as f: image = Image(f) self.assertRaises(FormatError, image.resize, 100, 100)