Chamar classe que Redimensiona imagem

Boa noite, amigos!

Tenho uma aplicação web que faz upload de uma imagem e grava-a no banco de dados. Tenho uma classe que faz o redimensionamento da imagem a partir do disco rigido, e grava-a tambem no disco rígido. Eu gostaria de faze-la pegar a imaggem do upload, redimensionar, e devolver a imagem para ser gravado no banco, ao invés de ser gravada no disco. Poderiam me dar uma luz como faço isso, por favor?

Na classe que faz o upload, se a imagem tiver mais que 1mb, ela chamará a classe que redimensiona. senão , ela grava a imagem no banco. vejam:

Classe que faz o upload:

//imports da vida

public class UploadImage implements Serializable {
 
    private UploadedFile file;
 
    public UploadedFile getFile() {
        return file;
    }
 
    public void setFile(UploadedFile file) {
        this.file = file;
    }
 
    public void upload() {
        long tamanho = file.getSize();
        String nome = file.getFileName();
        String extensao = nome.substring(nome.lastIndexOf(".") + 1, nome.length());
        
       
        if ( tamanho < 1048576) 
        {
            try {
              
                InputStream fin2 = file.getInputstream();
                PreparedStatement pre = con.prepareStatement("insert into upload_image (image_name,image) values(?,?)");
                pre.setString(1, file.getFileName().toString());
                pre.setBinaryStream(2, fin2, file.getSize());
                pre.executeUpdate();
               
                
              } 
               catch (Exception e) {
                System.out.println("Exception-File Upload." + e.getMessage());
            }
        }
        else if( tamanho > 1048576)
        {       
            //chama a classe que redimensiona a imagem. Como faço isso???
        }
        else{
        FacesMessage msg = new FacesMessage("Please select image with size until 2Mb and type: JPEG, GIF, PNG or BMP.");
                FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    }
}

Classe Redimensioinadora:


public class RedimensionaImagem {
 
	private static final int IMG_WIDTH = 160;
	private static final int IMG_HEIGHT = 200;
        UploadImage obj;
        
	public static void main(String [] args){
 
	try{
                 //Aqui quero que esta classe leia o arquivo do upload , ao invés do arquivo que está no disco
              	BufferedImage originalImage = ImageIO.read(new File("C:\\Users\\Fred\\Documents\\Resize\\teste.jpg"));
		int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
 
		BufferedImage resizeImageHintJpg = resizeImageWithHint(originalImage, type);

                 //aqui quero que esta classe devolva a imagem para a classe UploadImage, para ela ser gravada no banco
		ImageIO.write(resizeImageHintJpg, "jpg", new File("C:\\Users\\Fred\\Documents\\Resize\\aprendendo.jpg")); 

	}catch(IOException e){
		System.out.println(e.getMessage());
	}
 
    }
}