TF 2.0 is out! Get hands-on practice at TF World, Oct 28-31. Use code TF20 for 20% off select passes. Register now

TensorFlow 1 version

Defined in generated file: python/ops/

Decode a PNG-encoded image to a uint8 or uint16 tensor.


  • tf.compat.v1.image.decode_png
  • tf.compat.v2.image.decode_png
  • tf.image.decode_png

Used in the guide:

The attr channels indicates the desired number of color channels for the decoded image.

Accepted values are:

  • 0: Use the number of channels in the PNG-encoded image.
  • 1: output a grayscale image.
  • 3: output an RGB image.
  • 4: output an RGBA image.

If needed, the PNG-encoded image is transformed to match the requested number of color channels.

This op also supports decoding JPEGs and non-animated GIFs since the interface is the same, though it is cleaner to use tf.image.decode_image.


  • contents: A Tensor of type string. 0-D. The PNG-encoded image.
  • channels: An optional int. Defaults to 0. Number of color channels for the decoded image.
  • dtype: An optional tf.DType from: tf.uint8, tf.uint16. Defaults to tf.uint8.
  • name: A name for the operation (optional).


A Tensor of type dtype.