code: public Mirage getMirage (ImageKey key, Rectangle bounds, Colorization[] zations)
      {
          BufferedImage src = null;
          if (bounds == null) {
              // if they specified no bounds, we need to load up the raw image and determine its
              // bounds so that we can pass those along to the created mirage
              src = getImage(key, zations);
              bounds = new Rectangle(0, 0, src.getWidth(), src.getHeight());
          }
          return new CachedVolatileMirage(this, key, bounds, zations);
  
      }
docs: Like {@link #getMirage(ImageKey,Colorization[])} except that the mirage is created using
  only the specified subset of the original image.