Como desenhar parte de uma grande BufferedImage?

Eu tenho 10000x10000BufferedImage e eu estou olhando para desenhar apenas parte dele para umCanvasExiste uma maneira de fazer isso usando argumentos como:

x, y, width, height ?

Por exemplo, drawImage (img, x, y, largura, altura) desenharia um retângulo da imagem começando em (x, y) e tendo (largura, altura) como as dimensões?

EDITAR:

Eu vou relatar essa pergunta:

Eu tenho uma imagem de 10000x10000 e eu só quero exibir uma parte dela na tela, o problema com apenas compensando por xey é que isso ainda causa lag como a imagem inteira está sendo processada, apenas a maior parte da tela. Como posso basicamente fazer com que toda a imagem seja renderizada, mas posso rolar a tela sem causar lentidão na tela?

questionAnswers(3)

yourAnswerToTheQuestion