code: public BufferedImage getRawTileImage (int tileIndex)
      {
          Rectangle bounds = computeTileBounds(tileIndex, new Rectangle());
          BufferedImage img = null;
          if (checkTileIndex(tileIndex)) {
              BufferedImage timg = getRawTileSetImage();
              if (timg != null) {
                  img = timg.getSubimage(bounds.x, bounds.y, bounds.width, bounds.height);
              } else {
                  log.warning("Missing source image " + this);
              }
          }
          if (img == null) {
              img = ImageUtil.createErrorImage(bounds.width, bounds.height);
          }
          return img;
      }
docs: Returns the raw (unprepared) image that would be used by the tile at the specified
  index. Don't use this method unless you know what you're doing! If you're going to be
  painting this image onto the screen directly, use {@link #getTileMirage} because that
  prepares the image for display. Only use this if you're going to do further processing and
  prepare the subsequent image for display onscreen.