code: def create_image(data: np.ndarray, colormap, data_min=None, data_max=None, normalize=True) -> QImage:
          
          image_data = Spectrogram.apply_bgra_lookup(data, colormap, data_min, data_max, normalize)
  
          if not image_data.flags['C_CONTIGUOUS']:
              logger.debug("Array was not C_CONTIGUOUS. Converting it.")
              image_data = np.ascontiguousarray(image_data)
  
          try:
              # QImage constructor needs inverted row/column order
              image = QImage(image_data.ctypes.data, image_data.shape[1], image_data.shape[0], QImage.Format_ARGB32)
          except Exception as e:
              logger.error("could not create image " + str(e))
              return QImage()
  
          image.data = image_data
          return image
docs: Create QImage from ARGB array.
          The ARGB must have shape (width, height, 4) and dtype=ubyte.
          NOTE: The order of values in the 3rd axis must be (blue, green, red, alpha).
          :return: