code: def _func_max_size(img, max_size, interpolation, func):
      height, width = img.shape[:2]
  
      scale = max_size / float(func(width, height))
  
      if scale != 1.0:
          new_height, new_width = tuple(
              py3round(dim * scale) for dim in (height, width)
          )
          img = resize(
              img,
              height=new_height,
              width=new_width,
              interpolation=interpolation,
          )
      return img
  
imports: import math
  from typing import List, Optional, Sequence, Tuple, Union
  import cv2
  import numpy
  import skimage.transform
  from scipy.ndimage import gaussian_filter
  from albumentations.augmentations.utils import _maybe_process_in_chunks, angle_2pi_range, clipped, preserve_channel_dim, preserve_shape
  from ...None import random_utils
  from ...core.bbox_utils import denormalize_bbox, normalize_bbox
  from ...core.transforms_interface import BoxInternalType, FillValueType, ImageColorType, KeypointInternalType
label_desc: Use image node_id 14 for calling a global function with example usage: _func_max_size(img, max_size, interpolation, func) and returns: img