docs: public OutputStream process(InputStream inputStream, DrawTextParameter drawParam, int maxWidth, int maxHeight)
                                                                                                                    throws SimpleImageException {
          ImageRender wr = null;
          ByteArrayOutputStream output = null;
  
          try {
              inputStream = ImageUtils.createMemoryStream(inputStream);
              output = new ByteArrayOutputStream();
              ImageFormat outputFormat = ImageUtils.isGIF(inputStream) ? ImageFormat.GIF : ImageFormat.JPEG;
              ScaleParameter scaleParam = new ScaleParameter(maxWidth, maxHeight, Algorithm.AUTO);
  
              ImageRender rr = new ReadRender(inputStream, true);
              ImageRender dtr = new DrawTextRender(rr, drawParam);
              ImageRender sr = new ScaleRender(dtr, scaleParam);
              wr = new WriteRender(sr, output, outputFormat);
  
              wr.render();
          } catch (Exception e) {
              errorLog(inputStream);
  
              IOUtils.closeQuietly(output);
  
              if (e instanceof SimpleImageException) {
                  throw (SimpleImageException) e;
              } else {
                  throw new SimpleImageException(e);
              }
          } finally {
              try {
                  if (wr != null) {
                      wr.dispose();
                  }
              } catch (SimpleImageException ignore) {
              }
          }
  
          return output;
      }