docs: public static IIOImage getScaledInstance(IIOImage iioSource, float scale) {
          if (!(iioSource.getRenderedImage() instanceof BufferedImage)) {
              throw new IllegalArgumentException("RenderedImage in IIOImage must be BufferedImage");
          }
  
          if (Math.abs(scale - 1.0) < 0.001) {
              return iioSource;
          }
  
          BufferedImage source = (BufferedImage) iioSource.getRenderedImage();
          BufferedImage target = getScaledInstance(source, (int) (scale * source.getWidth()), (int) (scale * source.getHeight()));
          return new IIOImage(target, null, null);
      }