Copiar um pedaço da imagem

E ai pessoal… estou com uma grande dificulade… é o seguinte:

tenho uma imagem e preciso criar uma nova imagem que seja um pedaço menor dessa primeira. Já fiz de tudo, e tudo que consegui foi utilizando métodos da classe Graphics e Graphics2D. O problema é que essas 2 classes contém métodos Voids, não retornando nenhum objeto para que eu possa manipular essas imagens depois. Quando falo manipular, é utilizá-las em um setIcon() de um JLabel por exemplo.

Ja utilizei também o getScaledInstance(), porém esse serve apenas para redimensionar imagens.

Alguém tem alguma idéia de como eu faço para criar essa nova imagem utilizando apenas uma fração da imagem original??

Muito grato desde já!!!

Opa. blz?
Cara, eu estou com um problema quase igual ao seu…
Não sei se vai te ajudar mas vo coloca um pedaço do meu código aki, com ele eu chamo uma imagem, naum sei se issu te ajuda em alguma coisa, mas aí vai blz??

[code]public void paint(Graphics g){
super.paint(g);
if(imfoto != null){
Dimension apl = getSize();
imfoto = imfoto.getScaledInstance(
this.getWidth(), this.getHeight(), 10);

		MediaTracker media = new MediaTracker(this);
        media.addImage(imfoto, 0);
        try {
            media.waitForID(0);
        } catch (InterruptedException ie) {
        }
        g.drawImage(imfoto, 0, 0, this.getBackground(), this);
      
        
        repaint(); 
    }
    }[/code]

se vc tirar esse repaint(); ela fica parada na tela…

ve aí se ti ajuda, qlq coisa tamo aí pa tenta ajuda blz??
FlW!!! :smiley:

Acho que você pode usar um método da classe BufferedImage:

[quote=Javadoc]
BufferedImage getSubimage(int x, int y, int w, int h)

Returns a subimage defined by a specified rectangular region.[/quote]

Ou seja, você tendo sua imagem, caso não seja já um BufferedImage, deverá criar um BufferedImage com o mesmo tamanho da imagem, pegar o Graphics do BufferedImage recém criado e desenhar a imgem original. Então, finalmente, usar o getSubimage() e pegar a área desejada.

Flw

opa… desculpem a demora para agradecer, mas estou com problemas com o meu link adsl… enfim… realmente o gesSubimage() é o que eu preciso mesmo, mas o que esta ocorrendo, é que o bufferedImage gerado tem ficado com o fundo preto!!.. alguma solucao para isso??

vlw!!

na verdade o meu problema é que eu instancio um objeto bufferedImage, porém nao tenho a imagem maior dentro dele para pegar a subimage, afinal o meu bufferedimage é apenas um quadrado preto…

se poder ajudar… vlw!!

CONSEGUI!!! É isso mesmo que voce falou… com o bufferedImage e o getGraphics, deu certo!!!

abraços!!