docs: public final WritableRaster filter(final Raster pSource, WritableRaster pDest, IndexColorModel pColorModel) {
          int width = pSource.getWidth();
          int height = pSource.getHeight();
  
          if (pDest == null) {
              pDest = createCompatibleDestRaster(pSource, pColorModel);
          }
  
          // temp buffers
          final int[] inRGB = new int[4];
          Object pixel = null;
  
          // TODO: Use getPixels instead of getPixel for better performance?
  
          // Loop through image data
          for (int y = 0; y < height; y++) {
              for (int x = 0; x < width; x++) {
                  // Get rgb from original raster
                  // DON'T KNOW IF THIS WILL WORK FOR ALL TYPES..?
                  pSource.getPixel(x, y, inRGB);
  
                  // Get pixel value...
                  // It is VERY important that we are using an IndexColorModel that
                  // support reverse color lookup for speed.
                  pixel = pColorModel.getDataElements(toIntARGB(inRGB), pixel);
  
                  // And set it
                  pDest.setDataElements(x, y, pixel);
              }
          }
  
          return pDest;
      }