What’s New

This section lists the new features available with version 2.5 of the ColorSync Manager, provides links to new and revised material in other sections, and summarizes changes to ColorSync functions, data types, and constants. It also contains a brief summary of features that were added for ColorSync 2.1.

This section includes the following:

For related information, see Document Revision History and About This Document.

New Features in ColorSync Manager Version 2.5

Version 2.5 of the ColorSync Manager provides many new or enhanced features. The following sections present a brief overview of these features, with links to detailed information in other sections.

New Profile Folder Location

Earlier versions of ColorSync placed the ColorSync Profiles folder inside the Preferences folder. Version 2.5 places the profiles folder at the first level inside the System folder. For backward compatibility, ColorSync may put an alias to the original folder location inside the new profiles folder.

You can now organize profiles by storing them in one level of subfolders within the profiles folder. You can also store aliases to other profiles and profile folders. Profile searching can find profiles in any of these locations.

For an overview of this and related topics, see:

Optimized Profile Searching

ColorSync 2.5 uses a cache file to keep track of currently-installed profiles. A flexible new routine, CMIterateColorSyncFolder, takes advantage of the profile cache to perform fast profile searches and provide profile information quickly.

For an overview of this topic, see:

For related information, including sample code that demonstrates optimized searching, see:

Monitor Calibration Framework and Per/Monitor Profiles

ColorSync 2.5 uses the Monitors & Sound control panel to provide a monitor calibration framework and per/monitor profiles. Among the features: you can select a separate profile for each available monitor; you can calibrate monitors and, for each monitor, create one or more color profiles (based on variations in gamma, white point, and so on); Apple provides a default calibration plug-in, but you can create your own calibration plug-in or use third-party versions; you can choose from any available calibrator to create a monitor profile.

For an overview of these features, see:

Starting with version 2.5, ColorSync also offers new features for working with displays: you can call ColorSync functions to get or set a monitor profile by AVID; you can use an optional profile tag, which you specify with the cmVideoCardGammaTag constant, to provide video card gamma data for a profile—when you call the function CMSetProfileByAVID, it retrieves the video card gamma data and sets the video card.

For sample code that uses the function CMGetProfileByAVID, see:

For an overview of video card gamma, see:

For descriptions of the data types and constants you use with video card data, see ColorSync Manager Reference.

Scripting Support

ColorSync 2.5 provides an extensible AppleScript framework that allows users to script many common tasks. Among the features:

  • Scriptable operations include setting the system profile, matching an image, and embedding a profile in an image.

  • Several sample scripts demonstrate how to automate repetitive tasks.

  • The scripting framework uses a plug-in architecture that is fully accessible to third-party scripting plug-ins.

For more information, see:

Multiprocessor Support

ColorSync’s default Color Matching Module, or CMM, now supports multiple processors for some color matching functions. Multiprocessor support is transparent to your code—it is invoked automatically when the required conditions are met. Matching algorithms take advantage of multiple processors with up to 95% efficiency. As a result, an operation can be performed nearly twice as fast when two processors are available. Performance is scalable.

For more information on this topic, see:

Sixteen-bit Channel Support

ColorSync’s default Color Matching Module now supports 16-bits-per-channel color spaces. The new formats supported are:

  • RBG stored in 48 bits per pixel

  • CMYK stored in 64 bits per pixel

  • Lab stored in 48 bits per pixel

To make use of these new spaces, you specify one of the following constants in the color space field (space) of the CMBitmap structure:

cmRGB48Space
cmCMYK64Space
cmLAB48Space

For more information on these constants, see ColorSync Manager Reference.

Flexibility in Choosing CMMs and Default Profiles

The ColorSync control panel, which replaces the ColorSync™ System Profile control panel, now lets you choose a preferred CMM from any CMMs that are present.

Related changes include the following:

  • ColorSync previously supported only one default profile—the RGB System profile. Users can now use the ColorSync control panel to set default profiles for RGB and CMYK color spaces as well.

  • ColorSync provides functions your code can call to get and set default color space profiles for RGB, CMYK, Lab, and XYZ color spaces.

For more information, see:

Additional Features

Version 2.5 of the ColorSync Manager ships with the following additional features:

  • The Kodak Color Matching Module (available as an install option). Some cross-platform applications use the Kodak Color Management System on the Windows platform. Users working with Macintosh versions of those applications can use the Kodak CMM to ensure consistent output.

  • New versions of the ColorSync Photoshop plug-ins that take advantage of ColorSync 2.5. The Filter plug-in is accessible from the Photoshop Filters menu, while the Export and Import filters are accessible from the File menu.

  • Commonly-requested profiles, including SWOP (standard web offset press) and sRGB (standardized RGB monitor).

  • Support for an optional video card gamma tag in profiles. For more information, see Monitor Calibration Framework and Per/Monitor Profiles.

  • A ColorPicker Manager extension that works with ColorSync 2.x.

  • A revised version of the CSDemo application provides sample code that demonstrates how to use many of the new features of ColorSync 2.5.

New and Revised Functions, Data Types, and Constants

The tables in this section provide a brief description of new and changed functions, data types, and constants in ColorSync version 2.5, as well as links to more detailed information.

Table 8-1  New and revised functions in ColorSync 2.5

Function

Version 2.5 Notes

NCMGetProfileLocation

New. Obtains either a profile location structure for a specified profile or the size of the location structure for the profile. Has parameter to specify size of location structure.

CMGetProfileLocation

Not recommended. Use NCMGetProfileLocation (page 233) instead.

CMFlattenProfile

Changed. The ColorSync Manager now calls the transfer function directly, without going through the preferred, or any, CMM.

CMUnflattenProfile

Changed. The ColorSync Manager now calls the transfer function directly, without going through the preferred, or any, CMM.

NCWNewColorWorld

Changed. Use of the system profile has changed, as described in Setting Default Profiles. This could affect use of src and dst parameters.

CWConcatColorWorld

Changed. Selection of preferred CMM has changed, as described in Setting a Preferred CMM and How the ColorSync Manager Selects a CMM.

CWNewLinkProfile

Changed. Selection of preferred CMM has changed, as described in Setting a Preferred CMM and How the ColorSync Manager Selects a CMM.

CMGetCWInfo

Changed. Selection of preferred CMM has changed, as described in Setting a Preferred CMM and How the ColorSync Manager Selects a CMM.

CWMatchBitmap

Changed. Now supports additional color space constants: cmGray16Space, cmGrayA32Space, cmRGB48Space, cmCMYK64Space, and cmLAB48Space.

NCMBeginMatching

Changed. Use of the system profile has changed, as described in Setting Default Profiles. This could affect use of src and dst parameters.

NCMDrawMatchedPicture

Changed. Use of the system profile has changed, as described in Setting Default Profiles. This could affect use of dst parameter.

CMGetPreferredCMM

New. Identifies the preferred CMM specified by the ColorSync control panel.

CMGetSystemProfile

Changed. Use of the system profile has changed, as described in Setting Default Profiles.

CMSetSystemProfile

Changed. Use of the system profile has changed, as described in Setting Default Profiles.

CMGetDefaultProfileBySpace

New. Gets the default profile for the specified color space.

CMSetDefaultProfileBySpace

New. Sets the default profile for the specified color space.

CMGetProfileByAVID

New. Gets the current profile for a monitor.

CMSetProfileByAVID

New. Sets the current profile for a monitor.

CMGetColorSyncFolderSpec

Changed. The name and location of the profile folder changed, as described in Profile Search Locations.

CMIterateColorSyncFolder

New. Provides optimized profile searching by iterating over available profiles.

CMNewProfileSearch

Not recommended. Use CMIterateColorSyncFolder instead.

CMUpdateProfileSearch

Not recommended. Use CMIterateColorSyncFolder instead.

CMDisposeProfileSearch

Not recommended. Use CMIterateColorSyncFolder instead.

CMSearchGetIndProfile

Not recommended. Use CMIterateColorSyncFolder instead.

CMSearchGetIndProfileFileSpec

Not recommended. Use CMIterateColorSyncFolder instead.

MyProfileIterateProc

New. Application-defined function that the CMIterateColorSyncFolder function calls once for each found profile file as it iterates over the available profiles.

MyColorSyncDataTransfer

Changed. The ColorSync Manager calls the function directly, without going through the preferred, or any, CMM

Table 8-2 shows new and revised data types.

Table 8-2  New and revised data types in ColorSync 2.5

Data type

Version 2.5 Notes

CMProfileIterateProcPtr

New. Universal procedure pointer definition for application-defined function you pass to the function CMIterateColorSyncFolder.

CMProfileIterateData

New. Provides concise description of key profile data during iteration over available profiles.

CMSearchRecord

Not recommended. Use CMProfileIterateData instead.

CMProfileSearchRef

Not recommended. Use CMProfileIterateData instead.

CMVideoCardGammaType

New. Optional profile tag for video card gamma.

CMVideoCardGammaTable

New. Specifies video card gamma data in table format, based on the specified number of channels, entries per channel, and entry size.

CMVideoCardGammaFormula

New. Specifies video card gamma data as a formula, based on specified actual, minimum, and maximum values for red, blue and green gamma.

CMVideoCardGamma

New. Specifies video gamma data to store with a video gamma profile tag, in either table or formula format.

Table 8-3 shows new and revised constants.

Table 8-3  New and revised constants in ColorSync 2.5

Constants

Version 2.5 Notes

Color Packing for Color Spaces

Changed. The constants cm48_16ColorPacking and cm64_16ColorPacking were added.

Abstract Color Space Constants

Changed. The constants cmRGBASpace and cmGrayASpace were moved from Color Space Constants With Packing Formats.

Color Space Constants With Packing Formats

Changed. The constants cmRGBASpace and cmGrayASpace were moved to Abstract Color Space Constants.The constants cmGray16Space, cmGrayA32Space, cmRGB48Space, cmCMYK64Space, and cmLAB48Space were added.

Device Attribute Values for Version 2.x Profiles

Changed. The illustration was revised to show the correct ICC definitions for the deviceAttributes field in the CM2Header data structure. Unused enums were removed.

Video Card Gamma Tag

New. Specifies the video card gamma tag in a profile.

Video Card Gamma Tag Type

New. Specifies the signature type for a video card gamma profile tag.

Video Card Gamma Storage Type

New. Specifies whether the data in a video card gamma tag is in table or formula format.

New and Revised Code Listings

This section provides a brief description of new and revised code listings.

Table 8-4  New and revised code listings for ColorSync 2.5

Listing

Version 2.5 Notes

Listing 4-1,Determining if ColorSync 2.5 is available

Revised. Checks for version 2.5.

Listing 4-2,Opening a reference to a file-based profile

Revised. Replaced profLoc.u.file.spec with profLoc.u.fileLoc.spec.

Listing 4-3,Poor man’s exception handling macro

New. Provides the require macro for simple error handling.

Listing 4-4, Identifying the current system profile

Revised. Returns CMError instead of void. Uses require error-handling macro.

Listing 4-5, Getting the profile for the main display

New. Uses the new CMGetProfileByAVID function to get the profile for the main display.

Listing 4-6, Matching a picture to a display

Revised. Formerly called both NCMBeginMatching and NCMDrawMatchedPicture. Now calls only the latter. Uses require error-handling macro.

Listing 4-6, Matching a picture to a display

Revised. Formerly called both CWMatchPixMap and CWMatchBitmap. Now calls only the latter (fixes bug 1669727). Uses require error-handling macro.

Listing 4-8, Embedding a profile by prepending it before its associated picture

Revised. Uses require error-handling macro. Disposes of graphics world if necessary on error condition.

Listing 4-9, Counting the number of profiles in a picture

Revised. Renamed bottleneck procedures for clarity.

Listing 4-10, Calling the CMUnflattenProfile function to extract an embedded profile

Revised. Uses require error-handling macro. Performs cleanup if necessary on error condition.

Listing 4-13, An iteration function for profile searching with ColorSync 2.5

New. Provides an iteration function for optimized profile searching with the new MyProfileIterateProc function.

Listing 4-14, A filter function for profile searching prior to ColorSync 2.5

New. Provides a filter function to perform profile searching with the CMNewProfileSearch function that mimics the optimized searching supported by the MyProfileIterateProc function.

Listing 4-15, Optimized profile searching compatible with previous versions of ColorSync

New. Provides sample code that performs an optimized profile search if ColorSync 2.5 is available, but provides a compatible (though not optimized) search if it is not.

Listing 5-1, Modifying a profile header’s quality flag and setting the rendering intent

Revised. Additional comments.

New Features in ColorSync Manager Version 2.1

This section describes new features added to version 2.1 of the ColorSync Manager. These features are documented throughout this document. If you are interested in documentation that covers only version 2.1, see Other Color Documentation.

For a guide to the new features in version 2.1 of the ColorSync Manager, see the document What’s New in Advanced Color Imaging on the Mac OS, available with the ColorSync 2.1 SDK.

Other Color Documentation

For documentation that covers only features available with ColorSync Manager 2.1 and earlier versions, see Advanced Color Imaging on the Mac OS Revised for ColorSync 2.1 and Advanced Color Imaging Reference Revised for ColorSync 2.1. These documents also describe the Color Picker Manager (Version 2.0), Color Manager, and Palette Manager.

An earlier, paper version of Advanced Color Imaging on the Mac OS, covering ColorSync through version 2.0, was published by Addison-Wesley Publishing Company. It has the catalog number ISBN 0-201-48949-X.

Technote 1100, Color Picker 2.1 describes version 2.1 of the Color Picker Manager. Note that Color Picker Manager version 2.1 works with ColorSync Manager versions 2.0 and greater.

The electronic documents described here are available at <http://developer.apple.com/>.