---
title: "init(data:size:)"
framework: spritekit
role: symbol
role_heading: Initializer
path: "spritekit/sktexture/init(data:size:)"
---

# init(data:size:)

Creates a new texture from raw pixel data.

## Declaration

```swift
convenience init(data pixelData: Data, size: CGSize)
```

## Parameters

- `pixelData`: An NSData object that holds the bitmap data. The pixels must be 32 bpp, 8bpc (unsigned integer) RGBA pixel data. The color components should have been already multiplied by the alpha value.
- `size`: The size of the new texture in points.

## Return Value

Return Value A new texture object.

## Discussion

Discussion The image data is copied before control is returned to your game. Creating textures from raw pixel data is useful if you have a CPU based routine for creating imagery. The following Swift code shows how you can use init(data:size:) to create a texture containing random colors and a solid alpha. The bytes array is populated by iterating over the total number of pixels and adding four UInt8 values for the red, green, blue, and alpha channels. let width = 128 let height = 128 let bytes = stride(from: 0, to: width * height, by: 1).flatMap {     _ in     return [         UInt8(drand48() * 255), // red         UInt8(drand48() * 255), // green         UInt8(drand48() * 255), // blue         UInt8(255)              // alpha     ] } let data = Data(bytes: bytes) let texture = SKTexture(data: data,                         size: CGSize(width: width, height: height))

## See Also

### Texture from Data

- [init(data:size:rowLength:alignment:)](spritekit/sktexture/init(data:size:rowlength:alignment:).md)
- [init(data:size:flipped:)](spritekit/sktexture/init(data:size:flipped:).md)
