# tf.io.encode_png

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.14.0/tensorflow/python/ops/image_ops_impl.py#L3223-L3250) |

PNG-encode an image.

#### View aliases


**Main aliases**

[`tf.image.encode_png`](https://www.tensorflow.org/api_docs/python/tf/io/encode_png)
**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.image.encode_png`](https://www.tensorflow.org/api_docs/python/tf/io/encode_png), [`tf.compat.v1.io.encode_png`](https://www.tensorflow.org/api_docs/python/tf/io/encode_png)

<br />

    tf.io.encode_png(
        image, compression=-1, name=None
    )

`image` is a rank-N Tensor of type uint8 or uint16 with shape `batch_dims +
[height, width, channels]`, where `channels` is:

- 1: for grayscale.
- 2: for grayscale + alpha.
- 3: for RGB.
- 4: for RGBA.

The ZLIB compression level, `compression`, can be -1 for the PNG-encoder
default or a value from 0 to 9. 9 is the highest compression level,
generating the smallest output, but is slower.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `image` | A `Tensor`. Must be one of the following types: `uint8`, `uint16`. Rank N \>= 3 with shape `batch_dims + [height, width, channels]`. |
| `compression` | An optional `int`. Defaults to `-1`. Compression level. |
| `name` | A name for the operation (optional). |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A `Tensor` of type `string`. ||

<br />