Пример #1
0
 def testQuality(self):
     img1 = scaleImage(CMYK, 84, 103)[0]
     img2 = scaleImage(CMYK, 84, 103, quality=50)[0]
     img3 = scaleImage(CMYK, 84, 103, quality=20)[0]
     self.assertNotEqual(img1, img2)
     self.assertNotEqual(img1, img3)
     self.failUnless(len(img1) > len(img2) > len(img3))
Пример #2
0
    def testDeprecations(self):
        import guillotina.contrib.image.scale

        # clear warnings registry, so the test actually sees the warning
        guillotina.contrib.image.scale.__warningregistry__.clear()
        with warnings.catch_warnings(record=True) as w:
            warnings.simplefilter("always")
            scaleImage(PNG, 16, 16, direction="keep")
            self.assertEqual(len(w), 1)
            self.assertIs(w[0].category, DeprecationWarning)
            self.assertIn("the 'direction' option is deprecated",
                          str(w[0].message))
Пример #3
0
 def testAlphaForcesPNG(self):
     # first image without alpha
     src = PIL.Image.new("RGBA", (256, 256), (255, 255, 255, 255))
     for y in range(0, 256):
         for x in range(0, 256):
             src.putpixel((x, y), (x, y, 0, 255))
     result = BytesIO()
     src.save(result, "TIFF")
     self.assertEqual(scaleImage(result, 84, 103, "contain")[1], "JPEG")
     # now with alpha
     src = PIL.Image.new("RGBA", (256, 256), (255, 255, 255, 128))
     result = BytesIO()
     for y in range(0, 256):
         for x in range(0, 256):
             src.putpixel((x, y), (x, y, 0, x))
     src.save(result, "TIFF")
     self.assertEqual(scaleImage(result, 84, 103, "contain")[1], "PNG")
Пример #4
0
 def testAutomaticGreyscale(self):
     src = PIL.Image.new("RGB", (256, 256), (255, 255, 255))
     draw = PIL.ImageDraw.Draw(src)
     for i in range(0, 256):
         draw.line(((0, i), (256, i)), fill=(i, i, i))
     result = BytesIO()
     src.save(result, "JPEG")
     (imagedata, format, size) = scaleImage(result, 200, None, "contain")
     image = PIL.Image.open(BytesIO(imagedata))
     self.assertEqual(max(image.size), 200)
     self.assertEqual(image.mode, "L")
     self.assertEqual(image.format, "JPEG")
Пример #5
0
 def testAutomaticPalette(self):
     # get a JPEG with more than 256 colors
     jpeg = PIL.Image.open(BytesIO(PROFILE))
     self.assertEqual(jpeg.mode, "RGB")
     self.assertEqual(jpeg.format, "JPEG")
     self.assertIsNone(jpeg.getcolors(maxcolors=256))
     # convert to PNG
     dst = BytesIO()
     jpeg.save(dst, "PNG")
     dst.seek(0)
     png = PIL.Image.open(dst)
     self.assertEqual(png.mode, "RGB")
     self.assertEqual(png.format, "PNG")
     self.assertIsNone(png.getcolors(maxcolors=256))
     # scale it to a size where we get less than 256 colors
     (imagedata, format, size) = scaleImage(dst.getvalue(), 24, None,
                                            "contain")
     image = PIL.Image.open(BytesIO(imagedata))
     # we should now have an image in palette mode
     self.assertEqual(image.mode, "P")
     self.assertEqual(image.format, "PNG")
Пример #6
0
 def testNewSizeReturned(self):
     (imagedata, format, size) = scaleImage(PNG, 42, 51, "contain")
     input = BytesIO(imagedata)
     image = PIL.Image.open(input)
     self.assertEqual(image.size, size)
Пример #7
0
 def testScaledImageKeepPNG(self):
     self.assertEqual(scaleImage(PNG, 84, 103, "contain")[1], "PNG")
Пример #8
0
 def testCropPreTallScaleUnspecifiedWidth(self):
     image = scaleImage(PNG, None, 400, "contain")
     self.assertEqual(image[2], (326, 400))
Пример #9
0
 def testResultBuffer(self):
     img1 = scaleImage(PNG, 84, 103)[0]
     result = BytesIO()
     img2 = scaleImage(PNG, 84, 103, result=result)[0]
     self.assertEqual(result, img2)  # the return value _is_ the buffer
     self.assertEqual(result.getvalue(), img1)  # but with the same value
Пример #10
0
 def testRestrictHeightOnlyDownScaleZero(self):
     self.assertEqual(scaleImage(PNG, 0, 51, "contain")[2], (42, 51))
Пример #11
0
 def testCropPreWideScaleUnspecifiedHeight(self):
     image = scaleImage(PNG, 400, None, "contain")
     self.assertEqual(image[2], (400, 490))
Пример #12
0
 def testScaledCMYKIsRGB(self):
     (imagedata, format, size) = scaleImage(CMYK, 42, 51, "contain")
     input = BytesIO(imagedata)
     image = PIL.Image.open(input)
     self.assertEqual(image.mode, "RGB")
Пример #13
0
 def testScaledImageIsJpeg(self):
     self.assertEqual(scaleImage(TIFF, 84, 103, "contain")[1], "JPEG")
Пример #14
0
 def testNoStretchingUpScale(self):
     self.assertEqual(scaleImage(PNG, 200, 103, "cover")[2], (84, 103))
Пример #15
0
 def testRestrictWidthOnlyUpScaleZero(self):
     self.assertEqual(scaleImage(PNG, 42, 0, "cover")[2], (42, 52))
Пример #16
0
 def testHalfSizeUpScale(self):
     self.assertEqual(scaleImage(PNG, 42, 51, "cover")[2], (42, 51))
Пример #17
0
 def testDoubleSizeUpScale(self):
     self.assertEqual(scaleImage(PNG, 168, 206, "cover")[2], (168, 206))
Пример #18
0
 def testSameSizeUpScale(self):
     self.assertEqual(scaleImage(PNG, 84, 103, "cover")[2], (84, 103))
Пример #19
0
 def testCropPreWideScale(self):
     image = scaleImage(PNG, 400, 100, "contain")
     self.assertEqual(image[2], (400, 100))
Пример #20
0
 def testScaledPreservesProfile(self):
     (imagedata, format, size) = scaleImage(PROFILE, 42, 51, "contain")
     input = BytesIO(imagedata)
     image = PIL.Image.open(input)
     self.assertIsNotNone(image.info.get("icc_profile"))
Пример #21
0
 def testScaledImageKeepGIFto(self):
     self.assertEqual(scaleImage(GIF, 84, 103, "contain")[1], "PNG")
Пример #22
0
 def testCropPreTallScale(self):
     image = scaleImage(PNG, 100, 400, "contain")
     self.assertEqual(image[2], (100, 400))
Пример #23
0
 def testRestrictHeightOnlyUpScaleZero(self):
     self.assertEqual(scaleImage(PNG, 0, 51, "cover")[2], (42, 51))
Пример #24
0
 def testRestrictWidthOnlyDownScaleZero(self):
     self.assertEqual(scaleImage(PNG, 42, 0, "contain")[2], (42, 52))
Пример #25
0
 def testScaledPngImageIsPng(self):
     self.assertEqual(scaleImage(PNG, 84, 103, "contain")[1], "PNG")
Пример #26
0
 def testKeepAspectRatio(self):
     self.assertEqual(scaleImage(PNG, 80, 80, "scale")[2], (65, 80))
Пример #27
0
 def testScaleWithFewColorsStaysColored(self):
     (imagedata, format, size) = scaleImage(PROFILE, 16, None, "contain")
     image = PIL.Image.open(BytesIO(imagedata))
     self.assertEqual(max(image.size), 16)
     self.assertEqual(image.mode, "RGB")
     self.assertEqual(image.format, "JPEG")
Пример #28
0
 def testThumbnailHeightNone(self):
     self.assertEqual(scaleImage(PNG, 42, None, "scale")[2], (42, 51))
Пример #29
0
 def testThumbnailWidthNone(self):
     self.assertEqual(scaleImage(PNG, None, 51, "scale")[2], (41, 51))
Пример #30
0
 def testHugeScale(self):
     # the image will be cropped, but not scaled
     self.assertEqual(scaleImage(PNG, 400, 99999, "contain")[2], (2, 103))