Utilizzo questo codice per ridimensionare una ImageIcon:

codice:
byte[] img2 ==> Contiene l'immagine
InputStream in = new ByteArrayInputStream(img2); 
BufferedImage bImageFromConvert = ImageIO.read(in); 
ImageIcon img = new ImageIcon(bImageFromConvert); 
Image img3 = img.getImage(); 
bImageFromConvert.getGraphics().drawImage(img3, 0, 0, 1016, 900, null); 
ImageIcon img5 = new ImageIcon(bImageFromConvert);
Ciò mi è necessario perchè visualizzo immagini fatte ad una risoluzione più grande della risoluzione del mio schermo. Il tutto è funzionante se non che ottengo un effetto sgranato bruttissimo che non mi fa visualizzare un bel niente. Come posso modificare tale codice?