Document Revision History

This table describes the changes to Core Image Programming Guide.


Updated for iOS 10.0, tvOS 10.0, and OS X v10.12.


Rewrote the Processing Images chapter to reflect modern Core Image best practices.


Corrected typos and references to features that were formerly for OS X only and are now available in iOS.


Corrected errors in example code listings.


Fixed errors in code examples.


Fixed errors in code examples.


Corrected several minor errors.


Updated code examples to use number, array, and dictionary literals.


Updated code examples to use standard key constants where available (for example, kCIInputImageKey instead of @"inputImage").


Corrected code listing in "The color cube in code".


Corrected code line c[3] = rgb[3] * alpha in Listing 5-3 to read simply c[3] = alpha.


Updated for iOS 6.0 and OS X v10.7.


Updated the introduction chapter.


Added chapters on face detection and auto enhancement filters.


Added information on performance best practices.


Added recipes for subclassing CIFilter to get custom effects.


Moved information on using the CIImageAccumulator class to its own chapter and revised the content to bring it up to date.


Added clarification on naming input parameters for custom filters.


Added information on thread safety.


Fixed broken link to external article.


Included for Core Image on iOS 5.


Added details on coordinate spaces.


Added information to Building a Dictionary of Filters.


Updated for OS X v10.5.


Added a note to Building a Dictionary of Filters.


Add information about CIFilter Image Kit Additions.


Added information about support for RAW images.


Updated links to references and added links in several places to Image Unit Tutorial.


Revised Executable and Nonexecutable Filters.


Revised Write an Output Image Method.


Added link to Cocoa memory management.


Removed section on memory management. Instead, see Advanced Memory Management Programming Guide.


Added a note to Building a Dictionary of Filters.


Fixed a typographical error.


Fixed minor technical and typographical errors.


Fixed minor technical problem.


Corrected the angular values for colors in Creating a CIFilter Object and Setting Values.


Reorganized content and added task information.


Removed the appendix “Core Image Filters” and created a new document named Core Image Filter Reference.


Removed the appendix “Core Image Kernel Language” and created a new document named Core Image Kernel Language Reference.


Added Kernel Routine Examples to Creating Custom Filters and changed some of the short variable names to long ones in the code listings. Added information to Computing a Hole Distortion to clarify the purpose of the example.


Moved information about packaging filters as image units into its own chapter. Added additional information about the files needed in the project and where to install the image unit. See Before You Get Started, Build and Test the Image Unit, and See Also.


Updated the book introduction and some of the chapter introductions to reflect the chapter and appendix changes.


Revised Creating Custom Filters. In particular, see Write a Custom Attributes Method and Register the Filter.


Added additional information on how to create nonexecutable filters. See Writing Nonexecutable Filters.


Revised information on creating a CIContext object from an OpenGL graphics context.


Fixed formatting and, in online versions of this document, provided hyperlinks to the image creation functions in “Methods used to create a CIImage object from existing image sources.”


Added hyperlinks to most symbols and to sample code available in the ADC Reference Library.


Numerous small formatting and grammatical changes throughout.


Made minor corrections to a few filter parameters. Added information on the CIFilterBrowser widget.


Fixed several typographical errors and a broken hyperlink.


Updated a figure in the PDF version of this document.


Corrected typographical errors.


Updated for public release of OS X v10.4. First public version.


Changed the title from Image Processing With Core Image to make it more consistent with the titles of similar documentation.


Completely revised Querying the System for Filters to provide more in-depth information about how Core Image works.


Split the chapter titled Core Image Tasks into two chapters: Processing Images and Creating Custom Filters. Completely updated the content in each to reflect additions to the API and to provide more in-depth information.


Added Using Transition Effects.


Added Using Feedback to Process Images.


Added Applying a Filter to Video.


Added Expressing Image Processing Operations in Core Image.


Added Use Quartz Composer to Test the Kernel Routine.


Provided more information on the region of interest and ROI functions. See The Region of Interest and Supplying an ROI Function.


Provided more information on executable and nonexecutable filters. See Executable and Nonexecutable Filters and Writing Nonexecutable Filters.


Updated the appendix “Core Image Filters to include recently-added built-in Core Image filters. Also replaced many of the figures to provide a better idea of the result produced by a filter.


Updated the appendix “Core Image Kernel Language” to reflect changes in the kernel language. Added explanations for the kernel routine examples.


New seed draft that describes an image processing technology, built into OS X v10.4, that provides access to built-in image filters for both video and still images and support for custom filters and real-time processing.