<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreImage",
  "identifier" : "/documentation/CoreImage/CIFilter-swift.class/pageCurlTransition()",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Core Image",
      "CoreImage"
    ],
    "preciseIdentifier" : "c:objc(cs)CIFilter(cm)pageCurlTransitionFilter"
  },
  "title" : "pageCurlTransition()"
}
-->

# pageCurlTransition()

Simulates the curl of a page, revealing the target image.

```
class func pageCurlTransition() -> any CIFilter & CIPageCurlTransition
```

## Return Value

The transition image.

## Discussion

This method applies the page curl transition filter to an image. The effect transitions from one image to another by simulating a curling page, revealing the target image as the page curls.

The page curl transition filter uses the following properties:

- `inputImage` : The starting image with the type [`CIImage`](/documentation/CoreImage/CIImage).
- `targetImage`: The ending image with the type [`CIImage`](/documentation/CoreImage/CIImage).
- `backsideImage`: An image used as the backside of the curl with the type [`CIImage`](/documentation/CoreImage/CIImage).
- `extent`: A <doc://com.apple.documentation/documentation/CoreFoundation/CGRect> representing the size of the effect.
- `time`: A `float` representing the parametric time of the transition from start (at time 0) to end (at time 1) as an <doc://com.apple.documentation/documentation/Foundation/NSNumber>.
- `angle`: A `float` representing the angle of the motion of the curl as an <doc://com.apple.documentation/documentation/Foundation/NSNumber>.
- `radius`: A `float` representing the radius of the curl as an <doc://com.apple.documentation/documentation/Foundation/NSNumber>.

The following code creates a filter that produces a page curling back to reveal the target image.

```swift
func pageCurl(inputImage: CIImage, targetImage: CIImage, backsideImage: CIImage) -> CIImage {
    let pageCurlTransition = CIFilter.pageCurlTransition()
    pageCurlTransition.inputImage = inputImage
    pageCurlTransition.targetImage = targetImage
    pageCurlTransition.backsideImage = backsideImage
    pageCurlTransition.extent = CGRect(x: 54, y: 90, width: 300, height: 300)
    pageCurlTransition.time = 5.6
    pageCurlTransition.angle = 0.9
    pageCurlTransition.radius = 150
    return pageCurlTransition.outputImage!
}
```

![Three photographs. In the photo on the left, there are multiple small purple flowers photographed close up with good lighting, and the background has a slight blur. In the photograph on the right is a tall building with two trees directly in front of the building. In the center photograph, a page curl transition filter is applied, resulting in a still photo of the moving transition. The left photograph is overlaid on the photo on the right with the bottom left corner of the top image appearing to be curled to reveal the city photograph, like the page of a book.](images/com.apple.coreimage/media-3616422@2x.png)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)