---
title: "init(dataInfo:data:size:releaseData:)"
framework: coregraphics
role: symbol
role_heading: Initializer
path: "coregraphics/cgdataprovider/init(datainfo:data:size:releasedata:)"
---

# init(dataInfo:data:size:releaseData:)

Creates a direct-access data provider that uses data your program supplies.

## Declaration

```swift
init?(dataInfo info: UnsafeMutableRawPointer?, data: UnsafeRawPointer, size: Int, releaseData: CGDataProviderReleaseDataCallback)
```

## Parameters

- `info`: A pointer to data of any type, or NULL. When Core Graphics calls the function specified in the releaseData parameter, it sends this pointer as its first argument.
- `data`: A pointer to the array of data that the provider contains.
- `size`: A value that specifies the number of bytes that the data provider contains.
- `releaseData`: A pointer to a release callback for the data provider, or NULL. Your release function is called when Core Graphics frees the data provider. For more information, see doc://com.apple.coregraphics/documentation/CoreGraphics/CGDataProviderReleaseDataCallback.

## Return Value

Return Value A new data provider. In Objective-C, you’re responsible for releasing this object using CGDataProviderRelease.

## Discussion

Discussion You use this function to create a direct-access data provider that uses callback functions to read data from your program an entire block at one time.

## See Also

### Creating Direct-Access Data Providers

- [init(directInfo:size:callbacks:)](coregraphics/cgdataprovider/init(directinfo:size:callbacks:).md)
- [init(data:)](coregraphics/cgdataprovider/init(data:).md)
- [init(url:)](coregraphics/cgdataprovider/init(url:).md)
- [init(filename:)](coregraphics/cgdataprovider/init(filename:).md)
- [CGDataProviderDirectCallbacks](coregraphics/cgdataproviderdirectcallbacks.md)
- [CGDataProviderGetBytePointerCallback](coregraphics/cgdataprovidergetbytepointercallback.md)
- [CGDataProviderGetBytesAtPositionCallback](coregraphics/cgdataprovidergetbytesatpositioncallback.md)
- [CGDataProviderReleaseBytePointerCallback](coregraphics/cgdataproviderreleasebytepointercallback.md)
- [CGDataProviderReleaseInfoCallback](coregraphics/cgdataproviderreleaseinfocallback.md)
- [CGDataProviderReleaseDataCallback](coregraphics/cgdataproviderreleasedatacallback.md)
