CIImage

Struct CIImage 

Source
pub struct CIImage { /* private fields */ }
Available on crate feature CIImage only.
Expand description

Implementations§

Source§

impl CIImage

Source

pub unsafe fn imageWithCGImage(image: &CGImage) -> Retained<CIImage>

Available on crate feature objc2-core-graphics only.
Source

pub unsafe fn imageWithCGImage_options( image: &CGImage, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

Available on crate feature objc2-core-graphics only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithCGImageSource_index_options( source: &CGImageSource, index: usize, dict: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

Available on crate feature objc2-image-io only.
§Safety

dict generic should be of the correct type.

Source

pub unsafe fn imageWithCGLayer(layer: &CGLayer) -> Retained<CIImage>

👎Deprecated
Available on crate feature objc2-core-graphics only.
Source

pub unsafe fn imageWithCGLayer_options( layer: &CGLayer, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

👎Deprecated
Available on crate feature objc2-core-graphics only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithBitmapData_bytesPerRow_size_format_colorSpace( data: &NSData, bytes_per_row: usize, size: CGSize, format: CIFormat, color_space: Option<&CGColorSpace>, ) -> Retained<CIImage>

Available on crate features objc2-core-foundation and objc2-core-graphics only.
Source

pub unsafe fn imageWithTexture_size_flipped_colorSpace( name: c_uint, size: CGSize, flipped: bool, color_space: Option<&CGColorSpace>, ) -> Retained<CIImage>

👎Deprecated: Core Image OpenGL API deprecated. (Define CI_SILENCE_GL_DEPRECATION to silence these warnings)
Available on crate features objc2-core-foundation and objc2-core-graphics only.
Source

pub unsafe fn imageWithTexture_size_flipped_options( name: c_uint, size: CGSize, flipped: bool, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

👎Deprecated: Core Image OpenGL API deprecated. (Define CI_SILENCE_GL_DEPRECATION to silence these warnings)
Available on crate feature objc2-core-foundation only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithMTLTexture_options( texture: &ProtocolObject<dyn MTLTexture>, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Option<Retained<CIImage>>

Available on crate feature objc2-metal only.
§Safety
  • texture may need to be synchronized.
  • texture may be unretained, you must ensure it is kept alive while in use.
  • options generic should be of the correct type.
Source

pub unsafe fn imageWithContentsOfURL(url: &NSURL) -> Option<Retained<CIImage>>

Source

pub unsafe fn imageWithContentsOfURL_options( url: &NSURL, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Option<Retained<CIImage>>

§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithData(data: &NSData) -> Option<Retained<CIImage>>

Source

pub unsafe fn imageWithData_options( data: &NSData, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Option<Retained<CIImage>>

§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithCVImageBuffer( image_buffer: &CVImageBuffer, ) -> Retained<CIImage>

Available on crate feature objc2-core-video only.
Source

pub unsafe fn imageWithCVImageBuffer_options( image_buffer: &CVImageBuffer, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

Available on crate feature objc2-core-video only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithCVPixelBuffer( pixel_buffer: &CVPixelBuffer, ) -> Retained<CIImage>

Available on crate feature objc2-core-video only.
Source

pub unsafe fn imageWithCVPixelBuffer_options( pixel_buffer: &CVPixelBuffer, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

Available on crate feature objc2-core-video only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithIOSurface(surface: &IOSurfaceRef) -> Retained<CIImage>

Available on crate feature objc2-io-surface only.
Source

pub unsafe fn imageWithIOSurface_options( surface: &IOSurfaceRef, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

Available on crate feature objc2-io-surface only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn imageWithColor(color: &CIColor) -> Retained<CIImage>

Available on crate feature CIColor only.
Source

pub unsafe fn emptyImage() -> Retained<CIImage>

Source

pub unsafe fn blackImage() -> Retained<CIImage>

Source

pub unsafe fn whiteImage() -> Retained<CIImage>

Source

pub unsafe fn grayImage() -> Retained<CIImage>

Source

pub unsafe fn redImage() -> Retained<CIImage>

Source

pub unsafe fn greenImage() -> Retained<CIImage>

Source

pub unsafe fn blueImage() -> Retained<CIImage>

Source

pub unsafe fn cyanImage() -> Retained<CIImage>

Source

pub unsafe fn magentaImage() -> Retained<CIImage>

Source

pub unsafe fn yellowImage() -> Retained<CIImage>

Source

pub unsafe fn clearImage() -> Retained<CIImage>

Source

pub unsafe fn initWithCGImage( this: Allocated<Self>, image: &CGImage, ) -> Retained<Self>

Available on crate feature objc2-core-graphics only.
Source

pub unsafe fn initWithCGImage_options( this: Allocated<Self>, image: &CGImage, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

Available on crate feature objc2-core-graphics only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithCGImageSource_index_options( this: Allocated<Self>, source: &CGImageSource, index: usize, dict: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

Available on crate feature objc2-image-io only.
§Safety

dict generic should be of the correct type.

Source

pub unsafe fn initWithCGLayer( this: Allocated<Self>, layer: &CGLayer, ) -> Retained<Self>

👎Deprecated: Use initWithCGImage: instead.
Available on crate feature objc2-core-graphics only.
Source

pub unsafe fn initWithCGLayer_options( this: Allocated<Self>, layer: &CGLayer, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

👎Deprecated: Use initWithCGImage:options instead.
Available on crate feature objc2-core-graphics only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithData( this: Allocated<Self>, data: &NSData, ) -> Option<Retained<Self>>

Source

pub unsafe fn initWithData_options( this: Allocated<Self>, data: &NSData, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Option<Retained<Self>>

§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithBitmapData_bytesPerRow_size_format_colorSpace( this: Allocated<Self>, data: &NSData, bytes_per_row: usize, size: CGSize, format: CIFormat, color_space: Option<&CGColorSpace>, ) -> Retained<Self>

Available on crate features objc2-core-foundation and objc2-core-graphics only.
Source

pub unsafe fn initWithTexture_size_flipped_colorSpace( this: Allocated<Self>, name: c_uint, size: CGSize, flipped: bool, color_space: Option<&CGColorSpace>, ) -> Retained<Self>

👎Deprecated: Core Image OpenGL API deprecated. (Define CI_SILENCE_GL_DEPRECATION to silence these warnings)
Available on crate features objc2-core-foundation and objc2-core-graphics only.
Source

pub unsafe fn initWithTexture_size_flipped_options( this: Allocated<Self>, name: c_uint, size: CGSize, flipped: bool, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

👎Deprecated: Core Image OpenGL API deprecated. (Define CI_SILENCE_GL_DEPRECATION to silence these warnings)
Available on crate feature objc2-core-foundation only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithMTLTexture_options( this: Allocated<Self>, texture: &ProtocolObject<dyn MTLTexture>, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Option<Retained<Self>>

Available on crate feature objc2-metal only.
§Safety
  • texture may need to be synchronized.
  • texture may be unretained, you must ensure it is kept alive while in use.
  • options generic should be of the correct type.
Source

pub unsafe fn initWithContentsOfURL( this: Allocated<Self>, url: &NSURL, ) -> Option<Retained<Self>>

Source

pub unsafe fn initWithContentsOfURL_options( this: Allocated<Self>, url: &NSURL, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Option<Retained<Self>>

§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithIOSurface( this: Allocated<Self>, surface: &IOSurfaceRef, ) -> Retained<Self>

Available on crate feature objc2-io-surface only.
Source

pub unsafe fn initWithIOSurface_options( this: Allocated<Self>, surface: &IOSurfaceRef, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

Available on crate feature objc2-io-surface only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithIOSurface_plane_format_options( this: Allocated<Self>, surface: &IOSurfaceRef, plane: usize, format: CIFormat, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

👎Deprecated
Available on crate feature objc2-io-surface only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithCVImageBuffer( this: Allocated<Self>, image_buffer: &CVImageBuffer, ) -> Retained<Self>

Available on crate feature objc2-core-video only.
Source

pub unsafe fn initWithCVImageBuffer_options( this: Allocated<Self>, image_buffer: &CVImageBuffer, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

Available on crate feature objc2-core-video only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithCVPixelBuffer( this: Allocated<Self>, pixel_buffer: &CVPixelBuffer, ) -> Retained<Self>

Available on crate feature objc2-core-video only.
Source

pub unsafe fn initWithCVPixelBuffer_options( this: Allocated<Self>, pixel_buffer: &CVPixelBuffer, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

Available on crate feature objc2-core-video only.
§Safety

options generic should be of the correct type.

Source

pub unsafe fn initWithColor( this: Allocated<Self>, color: &CIColor, ) -> Retained<Self>

Available on crate feature CIColor only.
Source

pub unsafe fn imageByApplyingTransform( &self, matrix: CGAffineTransform, ) -> Retained<CIImage>

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn imageByApplyingTransform_highQualityDownsample( &self, matrix: CGAffineTransform, high_quality_downsample: bool, ) -> Retained<CIImage>

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn imageByApplyingOrientation( &self, orientation: c_int, ) -> Retained<CIImage>

Source

pub unsafe fn imageTransformForOrientation( &self, orientation: c_int, ) -> CGAffineTransform

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn imageByApplyingCGOrientation( &self, orientation: CGImagePropertyOrientation, ) -> Retained<CIImage>

Available on crate feature objc2-image-io only.
Source

pub unsafe fn imageTransformForCGOrientation( &self, orientation: CGImagePropertyOrientation, ) -> CGAffineTransform

Available on crate features objc2-core-foundation and objc2-image-io only.
Source

pub unsafe fn imageByCompositingOverImage( &self, dest: &CIImage, ) -> Retained<CIImage>

Source

pub unsafe fn imageByCroppingToRect(&self, rect: CGRect) -> Retained<CIImage>

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn imageByClampingToExtent(&self) -> Retained<CIImage>

Source

pub unsafe fn imageByClampingToRect(&self, rect: CGRect) -> Retained<CIImage>

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn imageByApplyingFilter_withInputParameters( &self, filter_name: &NSString, params: &NSDictionary<NSString, AnyObject>, ) -> Retained<CIImage>

§Safety

params generic should be of the correct type.

Source

pub unsafe fn imageByApplyingFilter( &self, filter_name: &NSString, ) -> Retained<CIImage>

Source

pub unsafe fn imageByColorMatchingColorSpaceToWorkingSpace( &self, color_space: &CGColorSpace, ) -> Option<Retained<CIImage>>

Available on crate feature objc2-core-graphics only.
Source

pub unsafe fn imageByColorMatchingWorkingSpaceToColorSpace( &self, color_space: &CGColorSpace, ) -> Option<Retained<CIImage>>

Available on crate feature objc2-core-graphics only.
Source

pub unsafe fn imageByPremultiplyingAlpha(&self) -> Retained<CIImage>

Source

pub unsafe fn imageByUnpremultiplyingAlpha(&self) -> Retained<CIImage>

Source

pub unsafe fn imageBySettingAlphaOneInExtent( &self, extent: CGRect, ) -> Retained<CIImage>

Available on crate feature objc2-core-foundation only.
Source

pub unsafe fn imageByApplyingGaussianBlurWithSigma( &self, sigma: c_double, ) -> Retained<CIImage>

Create an image by applying a gaussian blur to the receiver.

  • Parameters:
  • sigma: The sigma of the gaussian blur to apply to the receiver. If the sigma is very small (less than 0.16) then the receiver is returned.
  • Returns: An autoreleased CIImage instance or the received image.
Source

pub unsafe fn imageBySettingProperties( &self, properties: &NSDictionary, ) -> Retained<CIImage>

Return a new image by changing the receiver’s metadata properties.

When you create an image, Core Image sets an image’s properties to a metadata dictionary as described here: properties. Use this method to override an image’s metadata properties with new values.

  • Parameters:
  • properties: A dictionary of metadata properties akin to the CGImageSourceCopyPropertiesAtIndex() function.
  • Returns: An autoreleased CIImage instance with a copy of the new properties.
§Safety

properties generic should be of the correct type.

Source

pub unsafe fn imageBySamplingLinear(&self) -> Retained<CIImage>

Create an image by changing the receiver’s sample mode to bilinear interpolation.

  • Returns: An autoreleased CIImage instance with a bilinear sampling.
Source

pub unsafe fn imageBySamplingNearest(&self) -> Retained<CIImage>

Create an image by changing the receiver’s sample mode to nearest neighbor.

  • Returns: An autoreleased CIImage instance with a nearest sampling.
Source

pub unsafe fn imageByInsertingIntermediate(&self) -> Retained<CIImage>

Create an image that inserts a intermediate that is cacheable

This intermediate will be not be cached if kCIContextCacheIntermediates is false.

  • Returns: An autoreleased CIImage.
Source

pub unsafe fn imageByInsertingIntermediate_( &self, cache: bool, ) -> Retained<CIImage>

Create an image that inserts a intermediate that is cacheable.

  • Parameters:
  • cache: Controls if Core Image caches the returned image.
  • YES : This intermediate will be cacheable even if kCIContextCacheIntermediates is false.
  • NO : the intermediate will be not be cached if kCIContextCacheIntermediates is false.
  • Returns: An autoreleased CIImage.
Source

pub unsafe fn imageByInsertingTiledIntermediate(&self) -> Retained<CIImage>

Create an image that inserts a intermediate that is cached in tiles

This intermediate will be cacheable even if kCIContextCacheIntermediates is false.

  • Returns: An autoreleased CIImage.
Source

pub unsafe fn imageByApplyingGainMap( &self, gainmap: &CIImage, ) -> Retained<CIImage>

Create an image that applies a gain map Core Image image to the received Core Image image.

The gain map image can be obtained by creating a CIImage instance from NSURL/NSData and setting the kCIImageAuxiliaryHDRGainMap option set to true``.

If the gain map CIImage instance doesn’t have the needed properties metadata, the received image will be returned as-is.

  • Returns: An autoreleased CIImage instance or the received image.
Source

pub unsafe fn imageByApplyingGainMap_headroom( &self, gainmap: &CIImage, headroom: c_float, ) -> Retained<CIImage>

Create an image that applies a gain map Core Image image with a specified headroom to the received Core Image image.

  • Parameters:
  • gainmap: The gain map CIImage instance to apply to the receiver.
  • headroom: a float value that specify how much headroom the resulting image should have. The headroom value will be limited to between 1.0 (i.e. SDR) and the full headroom allowed by the gain map.
  • Returns: An autoreleased CIImage instance or the received image.
Source

pub unsafe fn imageBySettingContentHeadroom( &self, headroom: c_float, ) -> Retained<CIImage>

Create an image by changing the receiver’s contentHeadroom property.

Changing this value will alter the behavior of the CIToneMapHeadroom and CISystemToneMap filters.

  • If the value is set to 0.0 then the returned image’s headroom is unknown.
  • If the value is set to 1.0 then the returned image is SDR.
  • If the value is set to greater 1.0 then the returned image is HDR.
  • Otherwise the returned image’s headroom is unknown.
  • Returns: An autoreleased CIImage.
Source

pub unsafe fn imageBySettingContentAverageLightLevel( &self, average: c_float, ) -> Retained<CIImage>

Create an image by changing the receiver’s contentAverageLightLevel property.

Changing this value will alter the behavior of the CIToneMapHeadroom and CISystemToneMap filters.

  • If the value is set to 0.0 or less then the returned image’s contentAverageLightLevel is unknown.
  • Returns: An autoreleased CIImage.
Source

pub unsafe fn extent(&self) -> CGRect

Available on crate feature objc2-core-foundation only.

Returns a rectangle the defines the bounds of non-(0,0,0,0) pixels in the image.

Note: the extent of `CIImage`` may be infinite or have a non-zero origin.

Source

pub unsafe fn isOpaque(&self) -> bool

Returns YES if the image is known to have and alpha value of 1.0 over the entire image extent.

This property is not atomic.

§Safety

This might not be thread-safe.

Source

pub unsafe fn properties(&self) -> Retained<NSDictionary<NSString, AnyObject>>

Returns the metadata properties dictionary of the image.

If the CIImage was created from NSURL or NSData then this dictionary is determined by calling CGImageSourceCopyPropertiesAtIndex().

If the CIImage was created with the kCIImageProperties option, then that dictionary is returned.

If the CIImage was created by applying CIFilter-class or CIKernel then the properties of the root inputImage will be returned.

Source

pub unsafe fn definition(&self) -> Retained<CIFilterShape>

Available on crate feature CIFilterShape only.
Source

pub unsafe fn url(&self) -> Option<Retained<NSURL>>

Source

pub unsafe fn colorSpace(&self) -> Option<Retained<CGColorSpace>>

Available on crate feature objc2-core-graphics only.
Source

pub unsafe fn contentHeadroom(&self) -> c_float

Returns the content headroom of the image.

If the image headroom is unknown, then the value 0.0 will be returned.

If the image headroom is known, then a value greater than or equal to 1.0 will be returned. A value of 1.0 will be returned if the image is SDR. A value greater than 1.0 will be returned if the image is HDR.

The image headroom may known when a CIImage is first initialized. If the a CIImage is initialized using:

  • NSURL or NSData : the headroom may be determined by associated metadata or deduced from pixel format or colorSpace information.
  • CGImage : headroom may be determined by CGImageGetHeadroomInfo() or deduced from pixel format or colorSpace information.
  • IOSurface : then the headroom will be determined by kIOSurfaceContentHeadroom. or deduced from pixel format or colorSpace information.
  • CVPixelBuffer : then the headroom will be determined by kCVImageBufferContentLightLevelInfoKey. or deduced from pixel format or colorSpace information.
  • BitmapData : headroom may be deduced from pixel format or colorSpace information.

If the image is the result of applying a CIFilter-class or CIKernel, this method will return 0.0.

There are exceptions to this. Applying a CIWarpKernel`` or certain ``CIFilter-class`` (e.g. CIGaussianBlur, CILanczosScaleTransform, CIAreaAverageand some others) to an image will result in a ``CIImage`` instance with the samecontentHeadroom` property value.

This property is not atomic.

§Safety

This might not be thread-safe.

Source

pub unsafe fn contentAverageLightLevel(&self) -> c_float

Returns the content average light level of the image.

If the image average light level is unknown, then the value 0.0 will be returned.

If the image headroom is known, then a value greater than or equal to 0.0 will be returned.

The image average light level may known when a CIImage is first initialized. If the a CIImage is initialized with a:

  • CGImage : then the headroom will be determined by CGImageGetContentAverageLightLevel().
  • CVPixelBuffer : then the headroom will be determined by kCVImageBufferContentLightLevelInfoKey.

If the image is the result of applying a CIFilter-class or CIKernel, this property will return 0.0.

There are exceptions to this. Applying a CIWarpKernel or certain CIFilter-class (e.g. CIGaussianBlur, CILanczosScaleTransform, CIAreaAverage and some others) to an image will result in a CIImage instance with the same contentAverageLightLevel property value.

This property is not atomic.

§Safety

This might not be thread-safe.

Source

pub unsafe fn pixelBuffer(&self) -> Option<Retained<CVPixelBuffer>>

Available on crate feature objc2-core-video only.

This property is not atomic.

§Safety

This might not be thread-safe.

Source

pub unsafe fn CGImage(&self) -> Option<Retained<CGImage>>

Available on crate feature objc2-core-graphics only.

This property is not atomic.

§Safety

This might not be thread-safe.

Source

pub unsafe fn metalTexture( &self, ) -> Option<Retained<ProtocolObject<dyn MTLTexture>>>

Available on crate feature objc2-metal only.

Returns a Metal Texture if the Core Image image was created with a texture.

This will return non-nil if the image was created with /CIImage/imageWithMTLTexture:options: and no options. Otherwise this property will be nil you should instead call /CIContext/render:toMTLTexture:commandBuffer:bounds:colorSpace:.

Warning: Modifying the contents of this texture will cause the CIImage instance to render with incorrect results.

This property is not atomic.

§Safety

This might not be thread-safe.

Source

pub unsafe fn regionOfInterestForImage_inRect( &self, image: &CIImage, rect: CGRect, ) -> CGRect

Available on crate feature objc2-core-foundation only.
Source§

impl CIImage

Methods declared on superclass NSObject.

Source

pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>

Source

pub unsafe fn new() -> Retained<Self>

Source§

impl CIImage

AutoAdjustment.

Source

pub unsafe fn autoAdjustmentFilters(&self) -> Retained<NSArray<CIFilter>>

Available on crate feature CIFilter only.
Source

pub unsafe fn autoAdjustmentFiltersWithOptions( &self, options: Option<&NSDictionary<CIImageAutoAdjustmentOption, AnyObject>>, ) -> Retained<NSArray<CIFilter>>

Available on crate feature CIFilter only.
§Safety

options generic should be of the correct type.

Source§

impl CIImage

LabConversion.

Source§

impl CIImage

CIImageProvider.

Source

pub unsafe fn imageWithImageProvider_size__format_colorSpace_options( provider: &AnyObject, width: usize, height: usize, format: CIFormat, color_space: Option<&CGColorSpace>, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<CIImage>

Available on crate features CIImageProvider and objc2-core-graphics only.

Create an image object based on pixels from an image provider object.

Core Image retains the provider object until the image is deallocated. The image provider object will not be called until the image is rendered.

  • Parameters:
  • provider: An object that implements the CIImageProvider protocol.
  • width: The width of the image.
  • height: The height of the image.
  • format: The CIFormat of the provided pixels.
  • colorSpace: The color space that the image is defined in. If nil, then the pixels will not be is not color matched to the Core Image working color space.
  • options: A dictionary that contains various CIImageOption keys that affect the resulting CIImage. The option kCIImageProviderTileSize controls if and how the provider object is called in tiles. The option kCIImageProviderUserInfo allows additional state to be passed to the provider object.
  • Returns: An autoreleased CIImage object based on the data provider.
§Safety
  • provider should be of the correct type.
  • options generic should be of the correct type.
Source

pub unsafe fn initWithImageProvider_size__format_colorSpace_options( this: Allocated<Self>, provider: &AnyObject, width: usize, height: usize, format: CIFormat, color_space: Option<&CGColorSpace>, options: Option<&NSDictionary<CIImageOption, AnyObject>>, ) -> Retained<Self>

Available on crate features CIImageProvider and objc2-core-graphics only.

Initializes an image object based on pixels from an image provider object.

Core Image retains the provider object until the image is deallocated. The image provider object will not be called until the image is rendered.

  • Parameters:
  • provider: An object that implements the CIImageProvider protocol.
  • width: The width of the image.
  • height: The height of the image.
  • format: The CIFormat of the provided pixels.
  • colorSpace: The color space that the image is defined in. If nil, then the pixels will not be is not color matched to the Core Image working color space.
  • options: A dictionary that contains various CIImageOption keys that affect the resulting CIImage. The option kCIImageProviderTileSize controls if and how the provider object is called in tiles. The option kCIImageProviderUserInfo allows additional state to be passed to the provider object.
  • Returns: An initialized CIImage object based on the data provider.
§Safety
  • provider should be of the correct type.
  • options generic should be of the correct type.

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

pub fn class(&self) -> &'static AnyClass

Dynamically find the class of this object.

§Panics

May panic if the object is invalid (which may be the case for objects returned from unavailable init/new methods).

§Example

Check that an instance of NSObject has the precise class NSObject.

use objc2::ClassType;
use objc2::runtime::NSObject;

let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use Ivar::load instead.

Use Ivar::load instead.

§Safety

The object must have an instance variable with the given name, and it must be of type T.

See Ivar::load_ptr for details surrounding this.

Source

pub fn downcast_ref<T>(&self) -> Option<&T>
where T: DowncastTarget,

Attempt to downcast the object to a class of type T.

This is the reference-variant. Use Retained::downcast if you want to convert a retained object to another type.

§Mutable classes

Some classes have immutable and mutable variants, such as NSString and NSMutableString.

When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.

So using this method to convert a NSString to a NSMutableString, while not unsound, is generally frowned upon unless you created the string yourself, or the API explicitly documents the string to be mutable.

See Apple’s documentation on mutability and on isKindOfClass: for more details.

§Generic classes

Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.

You can, however, safely downcast to generic collections where all the type-parameters are AnyObject.

§Panics

This works internally by calling isKindOfClass:. That means that the object must have the instance method of that name, and an exception will be thrown (if CoreFoundation is linked) or the process will abort if that is not the case. In the vast majority of cases, you don’t need to worry about this, since both root objects NSObject and NSProxy implement this method.

§Examples

Cast an NSString back and forth from NSObject.

use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};

let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();

Try (and fail) to cast an NSObject to an NSString.

use objc2_foundation::{NSObject, NSString};

let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());

Try to cast to an array of strings.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();

This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.

Downcast when processing each element instead.

use objc2_foundation::{NSArray, NSObject, NSString};

let arr = NSArray::from_retained_slice(&[NSObject::new()]);

for elem in arr {
    if let Some(data) = elem.downcast_ref::<NSString>() {
        // handle `data`
    }
}

Trait Implementations§

Source§

impl AsRef<AnyObject> for CIImage

Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<CIImage> for CIImage

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSObject> for CIImage

Source§

fn as_ref(&self) -> &NSObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for CIImage

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for CIImage

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl ClassType for CIImage

Source§

const NAME: &'static str = "CIImage"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = NSObject

The superclass of this class. Read more
Source§

type ThreadKind = <<CIImage as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl CopyingHelper for CIImage

Source§

type Result = CIImage

The immutable counterpart of the type, or Self if the type has no immutable counterpart. Read more
Source§

impl Debug for CIImage

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for CIImage

Source§

type Target = NSObject

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for CIImage

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for CIImage

Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl NSCopying for CIImage

Source§

fn copy(&self) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Returns a new instance that’s a copy of the receiver. Read more
Source§

unsafe fn copyWithZone(&self, zone: *mut NSZone) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Returns a new instance that’s a copy of the receiver. Read more
Source§

impl NSObjectProtocol for CIImage

Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl NSSecureCoding for CIImage

Source§

impl PartialEq for CIImage

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for CIImage

Source§

const ENCODING_REF: Encoding = <NSObject as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for CIImage

Source§

impl Eq for CIImage

Source§

impl NSCoding for CIImage

Source§

impl Send for CIImage

Source§

impl Sync for CIImage

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AnyThread for T
where T: ClassType<ThreadKind = dyn AnyThread + 'a> + ?Sized,

Source§

fn alloc() -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,