mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-25 05:01:26 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			113 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from tester import *
 | |
| 
 | |
| from PIL import Image
 | |
| 
 | |
| def test_sanity():
 | |
| 
 | |
|     def convert(im, mode):
 | |
|         out = im.convert(mode)
 | |
|         assert_equal(out.mode, mode)
 | |
|         assert_equal(out.size, im.size)
 | |
| 
 | |
|     modes = "1", "L", "I", "F", "RGB", "RGBA", "RGBX", "CMYK", "YCbCr"
 | |
| 
 | |
|     for mode in modes:
 | |
|         im = lena(mode)
 | |
|         for mode in modes:
 | |
|             yield_test(convert, im, mode)
 | |
| 
 | |
| def test_default():
 | |
| 
 | |
|     im = lena("P")
 | |
|     assert_image(im, "P", im.size)
 | |
|     im = im.convert()
 | |
|     assert_image(im, "RGB", im.size)
 | |
|     im = im.convert()
 | |
|     assert_image(im, "RGB", im.size)
 | |
| 
 | |
| 
 | |
| 
 | |
| # ref https://github.com/python-imaging/Pillow/issues/274
 | |
| 
 | |
| def _test_float_conversion(im):
 | |
|     orig = im.getpixel((5,5))
 | |
|     converted = im.convert('F').getpixel((5,5))
 | |
|     assert_equal(orig, converted)
 | |
| 
 | |
| def test_8bit():
 | |
|     im = Image.open('Images/lena.jpg')
 | |
|     _test_float_conversion(im.convert('L'))
 | |
| 
 | |
| def test_16bit():
 | |
|     im = Image.open('Tests/images/16bit.cropped.tif')
 | |
|     _test_float_conversion(im)
 | |
| 
 | |
| def test_16bit_workaround():
 | |
|     im = Image.open('Tests/images/16bit.cropped.tif')
 | |
|     _test_float_conversion(im.convert('I'))
 | |
|     
 | |
| def test_rgba_p():
 | |
|     im = lena('RGBA')
 | |
|     im.putalpha(lena('L'))
 | |
| 
 | |
|     converted = im.convert('P')
 | |
|     comparable = converted.convert('RGBA')
 | |
| 
 | |
|     assert_image_similar(im, comparable, 20)
 | |
|                
 | |
| def test_trns_p():    
 | |
|     im = lena('P')
 | |
|     im.info['transparency']=0
 | |
| 
 | |
|     f = tempfile('temp.png')
 | |
| 
 | |
|     l = im.convert('L')
 | |
|     assert_equal(l.info['transparency'], 0) # undone
 | |
|     assert_no_exception(lambda: l.save(f))
 | |
| 
 | |
| 
 | |
|     rgb = im.convert('RGB')
 | |
|     assert_equal(rgb.info['transparency'], (0,0,0)) # undone
 | |
|     assert_no_exception(lambda: rgb.save(f))
 | |
|     
 | |
| def test_trns_l():
 | |
|     im = lena('L')
 | |
|     im.info['transparency'] = 128
 | |
| 
 | |
|     f = tempfile('temp.png')
 | |
|     
 | |
|     rgb = im.convert('RGB')
 | |
|     assert_equal(rgb.info['transparency'], (128,128,128)) # undone
 | |
|     assert_no_exception(lambda: rgb.save(f))
 | |
| 
 | |
|     p = im.convert('P')
 | |
|     assert_true('transparency' in p.info)
 | |
|     assert_no_exception(lambda: p.save(f))
 | |
| 
 | |
|     p = assert_warning(UserWarning,
 | |
|                        lambda: im.convert('P', palette = Image.ADAPTIVE))
 | |
|     assert_false('transparency' in p.info)
 | |
|     assert_no_exception(lambda: p.save(f))
 | |
| 
 | |
|     
 | |
| def test_trns_RGB():
 | |
|     im = lena('RGB')
 | |
|     im.info['transparency'] = im.getpixel((0,0))
 | |
| 
 | |
|     f = tempfile('temp.png')
 | |
|         
 | |
|     l = im.convert('L')
 | |
|     assert_equal(l.info['transparency'], l.getpixel((0,0))) # undone
 | |
|     assert_no_exception(lambda: l.save(f))
 | |
| 
 | |
|     p = im.convert('P')
 | |
|     assert_true('transparency' in p.info)
 | |
|     assert_no_exception(lambda: p.save(f))
 | |
|     
 | |
|     p = assert_warning(UserWarning,
 | |
|                        lambda: im.convert('P', palette = Image.ADAPTIVE))
 | |
|     assert_false('transparency' in p.info)
 | |
|     assert_no_exception(lambda: p.save(f))
 | |
| 
 | |
| 
 |