1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como editar uma imagem do método paint() (Graphics)

Olá. desenvolvi um programa básico que desenha na tela com a função paint(), da biblioteca Graphics. O programa funciona normalmente, mas eu quero rotacionar a imagem resultante, e não consigo acessar a imagem em si (já que a função paint() é do tipo void).

Segue o código da classe criaImagem (Feita no NetBeans 8.2), que desenha na tela com o teclado. Cada vez que é digitado um número de 0-7, é impressa uma reta em uma determinada direção.


import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;

public class CriaImagem extends JFrame {
    private int x , y;
    private String [] seq;
    private int tam;
    private int tamp;

    public  CriaImagem(int t ,int ts, String [] s) {
    tam = t;
    seq = s;
    tamp = ts;
    setSize(1200,720);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
    }

    public void  setTamp(int t) {
    tamp = t;
    }
    public int getTamp(){
        return tamp;
    }

    public void  setSeq(String [] s) {
    seq = s;
    }

    public void  setTam(int t) {
    tam = t;
    }
    public int getTam(){
        return tam;
    }

    public void printStd(Graphics g, int xi, int yi, int xf, int yf){

        g.setColor( Color.BLACK );
    g.drawLine( xi, yi, xf , yf );
    xi = xf;
    yi = yf;
    }

    public void paint(Graphics g){

        int xi, yi, xf, yf, i, n;
    xi = 250;
    yi = 250;
    xf = 250;
    yf = 250;
    n = tam;
    String [] V = seq;

    for(i=0 ; i< n ; i++){     
        if(V[i].equals("0")){
            xf += tamp;
            printStd(g, xi, yi, xf, yf);
        }

        if(V[i].equals("1")){
            xf += tamp;
            yf -= tamp;
            printStd(g, xi, yi, xf, yf);
        }

        if(V[i].equals("2")){
            yf -= tamp;
            printStd(g, xi, yi, xf, yf);
            }

        if(V[i].equals("3")){
            xf -= tamp;
            yf -= tamp;
            printStd(g, xi, yi, xf, yf);
        }

        if(V[i].equals("4")){
            xf -= tamp;
            printStd(g, xi, yi, xf, yf);
        }

        if(V[i].equals("5")){
            xf -= tamp;
            yf += tamp;
            printStd(g, xi, yi, xf, yf);
        }

        if(V[i].equals("6")){
            yf += tamp;
            printStd(g, xi, yi, xf, yf);
        }

        if(V[i].equals("7")){
            xf += tamp;
            yf += tamp;
            printStd(g, xi, yi, xf, yf);


        }
    } 
    repaint();
    //g.clearRect( 0, 0, 500, 500); limpar a tela
    }
}

Depois que a imagem é impressa, como faço para salva-la em, por exemplo, uma imagem JPG? se um conseguir fazer isso, consigo girar a imagem carregando a mesma como BufferedImage?

Se alguém souber de um outro método para girar a imagem, por favor compartilhem comigo.

Dúvida principal: COMO FAÇO PARA GIRAR A IMAGEM RESULTANTE?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.