code: def alpha_multiply(self, alpha, data, shape=None):
          
          # alpha can be a scalar or an array
          if shape is None:
              shape = data.shape
  
          if len(data.shape) == 2:
              res = alpha * data
              # If desired shape is monochrome then return a mono image
              # otherwise broadcast to a grey color image.
              if len(shape) == 2:
                  return res
  
              # note: in timing tests, dstack was not as efficient here...
              data = np.empty(shape)
              data[:, :, 0] = res[:, :]
              data[:, :, 1] = res[:, :]
              data[:, :, 2] = res[:, :]
              return data
  
          else:
              # note: in timing tests, dstack was not as efficient here...
              res = np.empty(shape)
              res[:, :, 0] = data[:, :, 0] * alpha
              res[:, :, 1] = data[:, :, 1] * alpha
              res[:, :, 2] = data[:, :, 2] * alpha
              return res
docs: (alpha) can be a scalar or an array.