mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 07:57:27 +03:00 
			
		
		
		
	Merge pull request #735 from hugovk/test_cleanup
Remove old, unused cms_test.py
This commit is contained in:
		
						commit
						3f5b15ff31
					
				|  | @ -1,222 +0,0 @@ | ||||||
| # PyCMSTests.py |  | ||||||
| # Examples of how to use pyCMS, as well as tests to verify it works properly |  | ||||||
| # By Kevin Cazabon (kevin@cazabon.com) |  | ||||||
| 
 |  | ||||||
| # Imports |  | ||||||
| import os |  | ||||||
| from PIL import Image |  | ||||||
| from PIL import ImageCms |  | ||||||
| 
 |  | ||||||
| # import PyCMSError separately so we can catch it |  | ||||||
| PyCMSError = ImageCms.PyCMSError |  | ||||||
| 
 |  | ||||||
| ####################################################################### |  | ||||||
| # Configuration: |  | ||||||
| ####################################################################### |  | ||||||
| # set this to the image you want to test with |  | ||||||
| IMAGE = "c:\\temp\\test.tif" |  | ||||||
| 
 |  | ||||||
| # set this to where you want to save the output images |  | ||||||
| OUTPUTDIR = "c:\\temp\\" |  | ||||||
| 
 |  | ||||||
| # set these to two different ICC profiles, one for input, one for output |  | ||||||
| # set the corresponding mode to the proper PIL mode for that profile |  | ||||||
| INPUT_PROFILE = "c:\\temp\\profiles\\sRGB.icm" |  | ||||||
| INMODE = "RGB" |  | ||||||
| 
 |  | ||||||
| OUTPUT_PROFILE = "c:\\temp\\profiles\\genericRGB.icm" |  | ||||||
| OUTMODE = "RGB" |  | ||||||
| 
 |  | ||||||
| PROOF_PROFILE = "c:\\temp\\profiles\\monitor.icm" |  | ||||||
| 
 |  | ||||||
| # set to True to show() images, False to save them into OUTPUT_DIRECTORY |  | ||||||
| SHOW = False |  | ||||||
| 
 |  | ||||||
| # Tests you can enable/disable |  | ||||||
| TEST_error_catching                 = True |  | ||||||
| TEST_profileToProfile               = True |  | ||||||
| TEST_profileToProfile_inPlace       = True |  | ||||||
| TEST_buildTransform                 = True |  | ||||||
| TEST_buildTransformFromOpenProfiles = True |  | ||||||
| TEST_buildProofTransform            = True |  | ||||||
| TEST_getProfileInfo                 = True |  | ||||||
| TEST_misc                           = False |  | ||||||
| 
 |  | ||||||
| ####################################################################### |  | ||||||
| # helper functions |  | ||||||
| ####################################################################### |  | ||||||
| def outputImage(im, funcName = None): |  | ||||||
|     # save or display the image, depending on value of SHOW_IMAGES |  | ||||||
|     if SHOW: |  | ||||||
|         im.show() |  | ||||||
|     else: |  | ||||||
|         im.save(os.path.join(OUTPUTDIR, "%s.tif" %funcName)) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ####################################################################### |  | ||||||
| # The tests themselves |  | ||||||
| ####################################################################### |  | ||||||
| 
 |  | ||||||
| if TEST_error_catching: |  | ||||||
|     im = Image.open(IMAGE) |  | ||||||
|     try: |  | ||||||
|         #neither of these proifles exists (unless you make them), so we should |  | ||||||
|         # get an error |  | ||||||
|         imOut = ImageCms.profileToProfile(im, "missingProfile.icm", "cmyk.icm") |  | ||||||
| 
 |  | ||||||
|     except PyCMSError as reason: |  | ||||||
|         print("We caught a PyCMSError: %s\n\n" %reason) |  | ||||||
| 
 |  | ||||||
|     print("error catching test completed successfully (if you see the message \ |  | ||||||
|     above that we caught the error).") |  | ||||||
| 
 |  | ||||||
| if TEST_profileToProfile: |  | ||||||
|     # open the image file using the standard PIL function Image.open() |  | ||||||
|     im = Image.open(IMAGE) |  | ||||||
| 
 |  | ||||||
|     # send the image, input/output profiles, and rendering intent to |  | ||||||
|     # ImageCms.profileToProfile() |  | ||||||
|     imOut = ImageCms.profileToProfile(im, INPUT_PROFILE, OUTPUT_PROFILE, \ |  | ||||||
|                 outputMode = OUTMODE) |  | ||||||
| 
 |  | ||||||
|     # now that the image is converted, save or display it |  | ||||||
|     outputImage(imOut, "profileToProfile") |  | ||||||
| 
 |  | ||||||
|     print("profileToProfile test completed successfully.") |  | ||||||
| 
 |  | ||||||
| if TEST_profileToProfile_inPlace: |  | ||||||
|     # we'll do the same test as profileToProfile, but modify im in place |  | ||||||
|     # instead of getting a new image returned to us |  | ||||||
|     im = Image.open(IMAGE) |  | ||||||
| 
 |  | ||||||
|     # send the image to ImageCms.profileToProfile(), specifying inPlace = True |  | ||||||
|     result = ImageCms.profileToProfile(im, INPUT_PROFILE, OUTPUT_PROFILE, \ |  | ||||||
|                 outputMode = OUTMODE, inPlace = True) |  | ||||||
| 
 |  | ||||||
|     # now that the image is converted, save or display it |  | ||||||
|     if result is None: |  | ||||||
|         # this is the normal result when modifying in-place |  | ||||||
|         outputImage(im, "profileToProfile_inPlace") |  | ||||||
|     else: |  | ||||||
|         # something failed... |  | ||||||
|         print("profileToProfile in-place failed: %s" %result) |  | ||||||
| 
 |  | ||||||
|     print("profileToProfile in-place test completed successfully.") |  | ||||||
| 
 |  | ||||||
| if TEST_buildTransform: |  | ||||||
|     # make a transform using the input and output profile path strings |  | ||||||
|     transform = ImageCms.buildTransform(INPUT_PROFILE, OUTPUT_PROFILE, INMODE, \ |  | ||||||
|                 OUTMODE) |  | ||||||
| 
 |  | ||||||
|     # now, use the trnsform to convert a couple images |  | ||||||
|     im = Image.open(IMAGE) |  | ||||||
| 
 |  | ||||||
|     # transform im normally |  | ||||||
|     im2 = ImageCms.applyTransform(im, transform) |  | ||||||
|     outputImage(im2, "buildTransform") |  | ||||||
| 
 |  | ||||||
|     # then transform it again using the same transform, this time in-place. |  | ||||||
|     result = ImageCms.applyTransform(im, transform, inPlace = True) |  | ||||||
|     outputImage(im, "buildTransform_inPlace") |  | ||||||
| 
 |  | ||||||
|     print("buildTransform test completed successfully.") |  | ||||||
| 
 |  | ||||||
|     # and, to clean up a bit, delete the transform |  | ||||||
|     # this should call the C destructor for the transform structure. |  | ||||||
|     # Python should also do this automatically when it goes out of scope. |  | ||||||
|     del(transform) |  | ||||||
| 
 |  | ||||||
| if TEST_buildTransformFromOpenProfiles: |  | ||||||
|     # we'll actually test a couple profile open/creation functions here too |  | ||||||
| 
 |  | ||||||
|     # first, get a handle to an input profile, in this case we'll create |  | ||||||
|     # an sRGB profile on the fly: |  | ||||||
|     inputProfile = ImageCms.createProfile("sRGB") |  | ||||||
| 
 |  | ||||||
|     # then, get a handle to the output profile |  | ||||||
|     outputProfile = ImageCms.getOpenProfile(OUTPUT_PROFILE) |  | ||||||
| 
 |  | ||||||
|     # make a transform from these |  | ||||||
|     transform = ImageCms.buildTransformFromOpenProfiles(inputProfile, \ |  | ||||||
|                 outputProfile, INMODE, OUTMODE) |  | ||||||
| 
 |  | ||||||
|     # now, use the trnsform to convert a couple images |  | ||||||
|     im = Image.open(IMAGE) |  | ||||||
| 
 |  | ||||||
|     # transform im normally |  | ||||||
|     im2 = ImageCms.applyTransform(im, transform) |  | ||||||
|     outputImage(im2, "buildTransformFromOpenProfiles") |  | ||||||
| 
 |  | ||||||
|     # then do it again using the same transform, this time in-place. |  | ||||||
|     result = ImageCms.applyTransform(im, transform, inPlace = True) |  | ||||||
|     outputImage(im, "buildTransformFromOpenProfiles_inPlace") |  | ||||||
| 
 |  | ||||||
|     print("buildTransformFromOpenProfiles test completed successfully.") |  | ||||||
| 
 |  | ||||||
|     # and, to clean up a bit, delete the transform |  | ||||||
|     # this should call the C destructor for the each item. |  | ||||||
|     # Python should also do this automatically when it goes out of scope. |  | ||||||
|     del(inputProfile) |  | ||||||
|     del(outputProfile) |  | ||||||
|     del(transform) |  | ||||||
| 
 |  | ||||||
| if TEST_buildProofTransform: |  | ||||||
|     # make a transform using the input and output and proof profile path |  | ||||||
|     # strings |  | ||||||
|     # images converted with this transform will simulate the appearance |  | ||||||
|     # of the output device while actually being displayed/proofed on the |  | ||||||
|     # proof device.  This usually means a monitor, but can also mean |  | ||||||
|     # other proof-printers like dye-sub, etc. |  | ||||||
|     transform = ImageCms.buildProofTransform(INPUT_PROFILE, OUTPUT_PROFILE, \ |  | ||||||
|                 PROOF_PROFILE, INMODE, OUTMODE) |  | ||||||
| 
 |  | ||||||
|     # now, use the trnsform to convert a couple images |  | ||||||
|     im = Image.open(IMAGE) |  | ||||||
| 
 |  | ||||||
|     # transform im normally |  | ||||||
|     im2 = ImageCms.applyTransform(im, transform) |  | ||||||
|     outputImage(im2, "buildProofTransform") |  | ||||||
| 
 |  | ||||||
|     # then transform it again using the same transform, this time in-place. |  | ||||||
|     result = ImageCms.applyTransform(im, transform, inPlace = True) |  | ||||||
|     outputImage(im, "buildProofTransform_inPlace") |  | ||||||
| 
 |  | ||||||
|     print("buildProofTransform test completed successfully.") |  | ||||||
| 
 |  | ||||||
|     # and, to clean up a bit, delete the transform |  | ||||||
|     # this should call the C destructor for the transform structure. |  | ||||||
|     # Python should also do this automatically when it goes out of scope. |  | ||||||
|     del(transform) |  | ||||||
| 
 |  | ||||||
| if TEST_getProfileInfo: |  | ||||||
|     # get a profile handle |  | ||||||
|     profile = ImageCms.getOpenProfile(INPUT_PROFILE) |  | ||||||
| 
 |  | ||||||
|     # lets print some info about our input profile: |  | ||||||
|     print("Profile name (retrieved from profile string path name): %s" %ImageCms.getProfileName(INPUT_PROFILE)) |  | ||||||
| 
 |  | ||||||
|     # or, you could do the same thing using a profile handle as the arg |  | ||||||
|     print("Profile name (retrieved from profile handle): %s" %ImageCms.getProfileName(profile)) |  | ||||||
| 
 |  | ||||||
|     # now lets get the embedded "info" tag contents |  | ||||||
|     # once again, you can use a path to a profile, or a profile handle |  | ||||||
|     print("Profile info (retrieved from profile handle): %s" %ImageCms.getProfileInfo(profile)) |  | ||||||
| 
 |  | ||||||
|     # and what's the default intent of this profile? |  | ||||||
|     print("The default intent is (this will be an integer): %d" %(ImageCms.getDefaultIntent(profile))) |  | ||||||
| 
 |  | ||||||
|     # Hmmmm... but does this profile support INTENT_ABSOLUTE_COLORIMETRIC? |  | ||||||
|     print("Does it support INTENT_ABSOLUTE_COLORIMETRIC?: (1 is yes, -1 is no): %s" \ |  | ||||||
|             %ImageCms.isIntentSupported(profile, ImageCms.INTENT_ABSOLUTE_COLORIMETRIC, \ |  | ||||||
|             ImageCms.DIRECTION_INPUT)) |  | ||||||
| 
 |  | ||||||
|     print("getProfileInfo test completed successfully.") |  | ||||||
| 
 |  | ||||||
| if TEST_misc: |  | ||||||
|     # test the versions, about, and copyright functions |  | ||||||
|     print("Versions: %s" %str(ImageCms.versions())) |  | ||||||
|     print("About:\n\n%s" %ImageCms.about()) |  | ||||||
|     print("Copyright:\n\n%s" %ImageCms.copyright()) |  | ||||||
| 
 |  | ||||||
|     print("misc test completed successfully.") |  | ||||||
| 
 |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user