# tf.keras.utils.img_to_array

<br />

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

Converts a PIL Image instance to a Numpy array.

#### View aliases


**Main aliases**

[`tf.keras.preprocessing.image.img_to_array`](https://www.tensorflow.org/api_docs/python/tf/keras/utils/img_to_array)
**Compat aliases for migration**

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

\`tf.compat.v1.keras.preprocessing.image.img_to_array\`, \`tf.compat.v1.keras.utils.img_to_array\`

<br />

    tf.keras.utils.img_to_array(
        img, data_format=None, dtype=None
    )

#### Usage:

    from PIL import Image
    img_data = np.random.random(size=(100, 100, 3))
    img = tf.keras.utils.array_to_img(img_data)
    array = tf.keras.utils.image.img_to_array(img)

<br />

<br />

<br />

| ## Args ||
|---|---|
| `img` | Input PIL Image instance. |
| `data_format` | Image data format, can be either `"channels_first"` or `"channels_last"`. Defaults to `None`, in which case the global setting [`tf.keras.backend.image_data_format()`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/backend/image_data_format) is used (unless you changed it, it defaults to `"channels_last"`). |
| `dtype` | Dtype to use. Default to `None`, in which case the global setting [`tf.keras.backend.floatx()`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/backend/floatx) is used (unless you changed it, it defaults to `"float32"`). |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A 3D Numpy array. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | if invalid `img` or `data_format` is passed. |

<br />