# tf.keras.utils.array_to_img

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.14.0/keras/utils/image_utils.py#L201-L279) |

Converts a 3D Numpy array to a PIL Image instance.

#### View aliases


**Main aliases**

[`tf.keras.preprocessing.image.array_to_img`](https://www.tensorflow.org/api_docs/python/tf/keras/utils/array_to_img)

<br />

    tf.keras.utils.array_to_img(
        x, data_format=None, scale=True, dtype=None
    )

#### Usage:

    from PIL import Image
    img = np.random.random(size=(100, 100, 3))
    pil_img = tf.keras.utils.array_to_img(img)

<br />

<br />

<br />

| ## Args ||
|---|---|
| `x` | Input data, in any form that can be converted to a Numpy array. |
| `data_format` | Image data format, can be either `"channels_first"` or `"channels_last"`. None means the global setting [`tf.keras.backend.image_data_format()`](https://www.tensorflow.org/versions/r2.14/api_docs/python/tf/keras/backend/image_data_format) is used (unless you changed it, it uses `"channels_last"`). Defaults to `None`. |
| `scale` | Whether to rescale the image such that minimum and maximum values are 0 and 255 respectively. Defaults to `True`. |
| `dtype` | Dtype to use. None makes the global setting [`tf.keras.backend.floatx()`](https://www.tensorflow.org/versions/r2.14/api_docs/python/tf/keras/backend/floatx) to be used (unless you changed it, it uses `"float32"`). Defaults to `None`. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A PIL Image instance. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ImportError` | if PIL is not available. |
| `ValueError` | if invalid `x` or `data_format` is passed. |

<br />