code: def _process_image(filename, coder):
    
    # Read the image file.
    with tf.gfile.FastGFile(filename, 'r') as f:
      image_data = f.read()
  
    # Clean the dirty data.
    if _is_png(filename):
      # 1 image is a PNG.
      print('Converting PNG to JPEG for %s' % filename)
      image_data = coder.png_to_jpeg(image_data)
    elif _is_cmyk(filename):
      # 22 JPEG images are in CMYK colorspace.
      print('Converting CMYK to RGB for %s' % filename)
      image_data = coder.cmyk_to_rgb(image_data)
  
    # Decode the RGB JPEG.
    image = coder.decode_jpeg(image_data)
  
    # Check that image converted to RGB
    assert len(image.shape) == 3
    height = image.shape[0]
    width = image.shape[1]
    assert image.shape[2] == 3
  
    return image_data, height, width
docs: Process a single image file.
  
    Args:
      filename: string, path to an image file e.g., '/path/to/example.JPG'.
      coder: instance of ImageCoder to provide TensorFlow image coding utils.
    Returns:
      image_buffer: string, JPEG encoding of RGB image.
      height: integer, image height in pixels.
      width: integer, image width in pixels.