Alguém sabe como faço para fazer duas imagens virar uma usando o Graphics2D?
Preciso que vire só uma imagem e depois jogue em um jlabel.
Bom dia, sem falarmos em código, a ideia é simples, obter o tamanho das duas imagens de forma separada, e em uma terceira operacao vc iria construir um BufferedImage com a soma dos dois tamanhos, dar um drawImage da primeira imagem em x=0,y=0 e repetir a operação com a imagem dois no final do size da imagem um…
Bom dia,
Eu quero colocar uma imagem do lado da outra.
Eu não manjo mto do Graphics2D.
Vc teria algum exemplo Cristian?
Não! Mas se for o caso posso fazer um!
Mas uma pergunta, vc precisa realmente precisa de uma imagem composta por duas imagens?Vc não pode apresentar dois JLabels ccada um com sua imagem, um ao lado do outro?
Tem que ser só um Label mesmo Christian.
Pq depois terei que dar zoom na imagem e fazer mais algumas coisas.
Putz, será que vc poderia fazer um exemplo, se não for pedir demais
Mas é claro que esta pedindo demais kkkk…
Depois vc me paga uma cerveja!!!
Vc pode componentizar isso!
Image img01 = null;
Image img02 = null;
try {
img01 = ImageHelper.readImage("c:/img01.jpg");
img02 = ImageHelper.readImage("c:/img02.jpg");
}
catch (Exception e) {
// TODO: handle exception
}
int widthImg01 = img01.getWidth(null);
int widthImg02 = img02.getWidth(null);
int heightImg01 = img01.getHeight(null);
int totalwidth = widthImg01 + widthImg02;
int totalHeigh = heightImg01;
BufferedImage bfi = new BufferedImage(totalwidth, totalHeigh, BufferedImage.TYPE_INT_ARGB);
//Ajustes de Imagem
Graphics g = bfi.getGraphics();
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
((Graphics2D) g).setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// Preenche o plano de fundo da pagina com branco
g.setColor(Color.WHITE);
g.fillRect(0, 0, totalwidth,totalHeigh);
g.drawImage(img01, 0, 0, null);
g.drawImage(img02, widthImg01, 0, null);
//Fru Fru... adiciona uma linha prtea para separar as imagens
g.setColor(Color.BLACK);
g.fillRect(widthImg01,0, 5, totalHeigh);
//Exibe o resultado final
JFrame fr = new JFrame("Merge de imagens");
fr.getContentPane().setLayout(new BorderLayout());
JLabel jl = new JLabel(new ImageIcon(bfi));
fr.getContentPane().add(jl,BorderLayout.CENTER);
fr.pack();
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setVisible(true);
è isso aí!!!
Vc irá ainda fazer os ajustes de zoom redimensionamento etc… correto?
Eu estou desenvolvendo um projetinho no googlecode, se quiser eu já tenho alguns métodos prontos pra isso
È só fazer o checkout anonimo, esta dentro do Projeto “Utils”
http://code.google.com/p/bundleeditor/
[]s
Demoro cristian…
Funcionou aqui.
Obrigado cara =))
Que brou mó galhão.
Fico te devendo uma cerveja rs
A parte de zoom eu já tinha feito.
Fica tranquilo.
Abraço
Blz, boa sorte!
Olá cristian,
Estou utilizando este método para unir duas imagens e salvo esta união, porém, quando salvo em formato jpg, a imagem fica avermelhada (em formato png fica perfeito, mas é que preciso em formato jpg). Tem alguma idéia do que possa estar ocorrendo?
Uma hipótese é o tipo de paramento TYPE_XXXXXX que vc esta usando, experimente usar
BufferedImage.TYPE_INT_RGB acredito que servira perfeitamente para o JPG.
De uma lida na documentação da classe BufferedImage para maiores informações…
[]s
Bom dia Cristian,
Serviu perfeitamente. Muito obrigado!