Version: 2019.4
  • C#


Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.



public static NativeArray<byte> EncodeNativeArrayToPNG(NativeArray<T> input, Experimental.Rendering.GraphicsFormat format, uint width, uint height, uint rowBytes);


array The native array to convert.
format The pixel format of the image data.
width The width of the image data in pixels.
height The height of the image data in pixels.
rowBytes The length of a single row in bytes.


Encodes this native array into PNG format.

This function returns a NativeArray<byte> which is the PNG data. Write this data to disk to get the data in the PNG file format.

The encoded PNG data will contain alpha channel for RGBA32, ARGB32 textures, and no alpha channel for RGB24 textures.

PNG data will not contain gamma correction or color profile information.

This method is thread safe.

Passing rowBytes of 0 will calculate the row length in bytes automatically.

See Also: EncodeNativeArrayToEXR, EncodeNativeArrayToJPG.