code: def get_data(self, element, ranges, style):
      mapping = dict(image="image", x="x", y="y", dw="dw", dh="dh")
      if "alpha" in style:
          style["global_alpha"] = style["alpha"]
  
      if self.static_source:
          return {}, mapping, style
  
      img = np.dstack(
          [
              element.dimension_values(d, flat=False)
              for d in element.vdims
          ]
      )
  
      nan_mask = np.isnan(img)
      img[nan_mask] = 0
  
      if img.ndim == 3:
          img_max = img.max() if img.size else np.nan
          # Can be 0 to 255 if nodata has been used
          if img.dtype.kind == "f" and img_max <= 1:
              img = img * 255
              # img_max * 255 <- have no effect
          if img.size and (img.min() < 0 or img_max > 255):
              self.param.warning(
                  "Clipping input data to the valid "
                  "range for RGB data ([0..1] for "
                  "floats or [0..255] for integers)."
              )
              img = np.clip(img, 0, 255)
  
          if img.dtype.name != "uint8":
              img = img.astype(np.uint8)
          if img.shape[2] == 3:  # alpha channel not included
              alpha = np.full(img.shape[:2], 255, dtype="uint8")
              img = np.dstack([img, alpha])
          N, M, _ = img.shape
          # convert image NxM dtype=uint32
          if not img.flags["C_CONTIGUOUS"]:
              img = img.copy()
          img = img.view(dtype=np.uint32).reshape((N, M))
  
      img[nan_mask.any(-1)] = 0
  
      # Ensure axis inversions are handled correctly
      l, b, r, t = element.bounds.lbrt()
      if self.invert_axes:
          img = img.T
          l, b, r, t = b, l, t, r
  
      dh, dw = t - b, r - l
  
      if 0 in img.shape:
          img = np.zeros((1, 1), dtype=np.uint32)
  
      data = dict(image=[img], x=[l], y=[b], dw=[dw], dh=[dh])
      return (data, mapping, style)
  
imports: import sys
  import numpy
  import param
  from bokeh.models import CustomJSHover, DatetimeAxis
  from ...core.util import cartesian_product, dimension_sanitizer, isfinite
  from ...element import Raster
  from ..util import categorical_legend
  from .chart import PointPlot
  from .element import ColorbarPlot, LegendPlot
  from .selection import BokehOverlaySelectionDisplay
  from .styles import base_properties, fill_properties, line_properties, mpl_to_bokeh
  from .util import bokeh33, bokeh34, colormesh
label_desc: Use image node_id 4 for calling the RGBPlot obj's underlying member method code with example usage: obj.get_data(element, ranges, style) and returns: data,  mapping,  style, dict,  mapping,  style