Ampliando uma imagem através da replicação de pixels

O método Java apresentado abaixo, recebe como parâmetro um objeto BufferedImage object e retorna essa imagem ampliada n vezes.

Para ampliar uma imagem através de um inteiro (n), nós tornamos um pixel de entrada em um bloco n x n deste mesmo pixel na imagem de saída.

    public static BufferedImage enlarge(BufferedImage image, int n) {
        
        int w = n * image.getWidth();
        int h = n * image.getHeight();
        
        BufferedImage enlargedImage =
                new BufferedImage(w, h, image.getType());
        
        for (int y=0; y < h; ++y)
            for (int x=0; x < w; ++x)
                enlargedImage.setRGB(x, y, image.getRGB(x/n, y/n));
        
        return enlargedImage;
    }