See Also: CIPerspectiveTransformWithExtent Members
The following example shows this filter in use
C# Example
// Create the CIImage from a file CIImage heron = CIImage.FromCGImage (UIImage.FromFile ("heron.jpg").CGImage); var extent = heron.Extent; // Create a CIPerspectiveTransformWithExtent filter with the input image var perspective_transform_with_extent = new CIPerspectiveTransformWithExtent () { Image = heron, BottomLeft = new CIVector (extent.Left + 70, extent.Top + 20), BottomRight = new CIVector (extent.Right - 70, extent.Top - 20), TopLeft = new CIVector (extent.Left - 70, extent.Bottom - 20), TopRight = new CIVector (extent.Right + 70, extent.Bottom + 20), Extent = new CIVector (new float [] {extent.X + 100, extent.Y + 100, extent.Width - 100, extent.Height - 100}) }; // Get the altered image from the filter var output = perspective_transform_with_extent.OutputImage; // To render the results, we need to create a context, and then // use one of the context rendering APIs, in this case, we render the // result into a CoreGraphics image, which is merely a useful representation // var context = CIContext.FromOptions (null); var cgimage = context.CreateCGImage (output, output.Extent); // The above cgimage can be added to a screen view, for example, this // would add it to a UIImageView on the screen: myImageView.Image = UIImage.FromImage (cgimage);
With the following image input:
Produces the following output:
"canon" © 2012 cuatrok77 hernandez, used under a Creative Commons Attribution-ShareAlike license: http://creativecommons.org/licenses/by-sa/3.0/