parameters: (image_bytes, image_size)
return_statement: return image
docstring: Crops to center of image with padding then scales image_size.
docstring_summary: Crops to center of image with padding then scales image_size.
docstring_tokens: Crops to center of image with padding then scales image_size .
function: def _decode_and_center_crop(image_bytes, image_size):
    """Crops to center of image with padding then scales image_size."""
    shape = tf.image.extract_jpeg_shape(image_bytes)
    image_height = shape[0]
    image_width = shape[1]
  
    padded_center_crop_size = tf.cast(
        ((image_size / (image_size + CROP_PADDING)) *
         tf.cast(tf.minimum(image_height, image_width), tf.float32)),
        tf.int32)
  
    offset_height = ((image_height - padded_center_crop_size) + 1) // 2
    offset_width = ((image_width - padded_center_crop_size) + 1) // 2
    crop_window = tf.stack([offset_height, offset_width,
                            padded_center_crop_size, padded_center_crop_size])
    image = tf.image.decode_and_crop_jpeg(image_bytes, crop_window, channels=3)
    image = tf.image.resize_bicubic([image], [image_size, image_size])[0]
  
    return image
function_tokens: def _decode_and_center_crop ( image_bytes , image_size ) : shape = tf . image . extract_jpeg_shape ( image_bytes ) image_height = shape [ 0 ] image_width = shape [ 1 ] padded_center_crop_size = tf . cast ( ( ( image_size / ( image_size + CROP_PADDING ) ) * tf . cast ( tf . minimum ( image_height , image_width ) , tf . float32 ) ) , tf . int32 ) offset_height = ( ( image_height - padded_center_crop_size ) + 1 ) // 2 offset_width = ( ( image_width - padded_center_crop_size ) + 1 ) // 2 crop_window = tf . stack ( [ offset_height , offset_width , padded_center_crop_size , padded_center_crop_size ] ) image = tf . image . decode_and_crop_jpeg ( image_bytes , crop_window , channels = 3 ) image = tf . image . resize_bicubic ( [ image ] , [ image_size , image_size ] ) [ 0 ] return image