explicitly close the inputstream with the original image as ImageIO.read() does not do that for us
* add type annotation to avoid reflection