mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from helper import unittest, PillowTestCase, hopper
 | 
						|
 | 
						|
from PIL import Image
 | 
						|
from PIL import ImageChops
 | 
						|
 | 
						|
 | 
						|
class TestImageChops(PillowTestCase):
 | 
						|
 | 
						|
    def test_sanity(self):
 | 
						|
 | 
						|
        im = hopper("L")
 | 
						|
 | 
						|
        ImageChops.constant(im, 128)
 | 
						|
        ImageChops.duplicate(im)
 | 
						|
        ImageChops.invert(im)
 | 
						|
        ImageChops.lighter(im, im)
 | 
						|
        ImageChops.darker(im, im)
 | 
						|
        ImageChops.difference(im, im)
 | 
						|
        ImageChops.multiply(im, im)
 | 
						|
        ImageChops.screen(im, im)
 | 
						|
 | 
						|
        ImageChops.add(im, im)
 | 
						|
        ImageChops.add(im, im, 2.0)
 | 
						|
        ImageChops.add(im, im, 2.0, 128)
 | 
						|
        ImageChops.subtract(im, im)
 | 
						|
        ImageChops.subtract(im, im, 2.0)
 | 
						|
        ImageChops.subtract(im, im, 2.0, 128)
 | 
						|
 | 
						|
        ImageChops.add_modulo(im, im)
 | 
						|
        ImageChops.subtract_modulo(im, im)
 | 
						|
 | 
						|
        ImageChops.blend(im, im, 0.5)
 | 
						|
        ImageChops.composite(im, im, im)
 | 
						|
 | 
						|
        ImageChops.offset(im, 10)
 | 
						|
        ImageChops.offset(im, 10, 20)
 | 
						|
 | 
						|
    def test_logical(self):
 | 
						|
 | 
						|
        def table(op, a, b):
 | 
						|
            out = []
 | 
						|
            for x in (a, b):
 | 
						|
                imx = Image.new("1", (1, 1), x)
 | 
						|
                for y in (a, b):
 | 
						|
                    imy = Image.new("1", (1, 1), y)
 | 
						|
                    out.append(op(imx, imy).getpixel((0, 0)))
 | 
						|
            return tuple(out)
 | 
						|
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_and, 0, 1), (0, 0, 0, 255))
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_or, 0, 1), (0, 255, 255, 255))
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_xor, 0, 1), (0, 255, 255, 0))
 | 
						|
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_and, 0, 128), (0, 0, 0, 255))
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_or, 0, 128), (0, 255, 255, 255))
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_xor, 0, 128), (0, 255, 255, 0))
 | 
						|
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_and, 0, 255), (0, 0, 0, 255))
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_or, 0, 255), (0, 255, 255, 255))
 | 
						|
        self.assertEqual(
 | 
						|
            table(ImageChops.logical_xor, 0, 255), (0, 255, 255, 0))
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    unittest.main()
 | 
						|
 | 
						|
# End of file
 |