CIFilterBox has a simple and intuitive interface. Quickly find your filter and start playing with the settings. The output image will update in real-time, showing what the filter does and how the settings work. You can use your own input images or choose from the built-in stock photos. You can even use the output image as an input to simulate filter chaining.
Use simple controls for the major input key classes, including: NSNumber, CIColor, CIVector, NSAffineTransform, and NSString
Point, click, and drag directly on the image for inputs that use position, angle, rectangle, or transform
Use your own input images or choose from the built-in stock photos (curtesy of Gratisography.com)
View information on each input key including Class, Type, and Description
Receive warnings and hints for common filter problems such as 'image of infinite extent'
Crop the image extent, or view the full un-cropped output
Set a custom cropping extent for filters with no input image
Once you have the output you need you can copy a code snippet to the clipboard to use in your own code. The output image can be saved to file, or you can share directly from the app using the standard MacOS sharing service.
Toggle the filter on and off to compare the filtered image with the original
Select a background style to best display the transparent areas of different outputs
Use the output image as the input to simulate filter chaining
Share the output image via the MacOS sharing service (email, Airdrop etc.)
Save the output image as a PNG file
Known issues are listed below, but if you spot anything that is missing, broken, or just wrong, I would be grateful if you could let me know—I will do my best to fix it. I made CIFilterBox for myself after spending too many hours learning what the filters do and how to work them. I hope this app can save you from losing that precious time!
Known Issues
Core Image stores a cache for each filter, which can sometimes result in a large memory footprint. This is most noticeable with CIPersonSegmentation and CISaliencyMapFilter. Use judiciously.
The grayscale slider in the colour panel always switches back to RGB on edit, because the interface only uses RGBA values for simplicity
Some filters are too complex for the current interface, but are still included for information (CICameraCalibrationLensCorrection, CIBarcodeGenerator, CIMeshGenerator, CICoreMLModelFilter)
Some filters are non-functional and undocumented, but are still included for information (CIKMeans, CIPaletteCentroid, CIPalettize)