Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Este método redimensiona a imagem considerando o tamanho da label. Ele
- * ajusta automaticamente ao ponto menor, supondo que a imagem seja mais
- * larga que a label. O método reduz a escala da imagem para se encaixar na
- * largura. E se a largura for menor ele se ajusta também a altura sem
- * perder a proporção.
- *
- * @param pImagem
- * @return
- */
- public ImageIcon ajustarImgEmLabel(ImageIcon pImagem) {
- double larguraDaImagem = pImagem.getIconHeight();
- double alturaDaImagem = pImagem.getIconWidth();
- double larguraDaLabel = jlLogo.getWidth();
- double alturaDaLabel = jlLogo.getHeight();
- //Encontra a distancia de um ponto a outro da imágem cruzando pelo centro.
- double distanciaCentral = Math.sqrt(larguraDaImagem + alturaDaImagem); // distanciaCentral = raiz de lado + altura
- double percentReducaoPelaLargura = (larguraDaLabel * distanciaCentral) / alturaDaImagem; //regra de 3 para achar o percentual de redução x = largura da label * distanciaCentral / largura da imagem
- double novaAlturaImagem = (percentReducaoPelaLargura * larguraDaImagem) / distanciaCentral; //regra de 3
- larguraDaImagem = novaAlturaImagem;
- alturaDaImagem = larguraDaLabel;
- if (novaAlturaImagem > alturaDaLabel) {
- distanciaCentral = Math.sqrt(larguraDaImagem + alturaDaImagem); // distanciaCentral = raiz de lado vezes altura
- double hipotenusaReduzidaPelaAlturaDaLabel = (alturaDaLabel * distanciaCentral) / larguraDaImagem; //regra de 3 para achar o percentual de redução x = largura da label * distanciaCentral / largura da imagem
- double novaLargura = (hipotenusaReduzidaPelaAlturaDaLabel * alturaDaImagem) / distanciaCentral; //regra de 3
- larguraDaImagem = alturaDaLabel;
- alturaDaImagem = novaLargura;
- } else {
- distanciaCentral = Math.sqrt(larguraDaImagem + alturaDaImagem); // distanciaCentral = raiz de lado vezes altura
- percentReducaoPelaLargura = (larguraDaLabel * distanciaCentral) / alturaDaImagem; //regra de 3 para achar o percentual de redução x = largura da label * distanciaCentral / largura da imagem
- novaAlturaImagem = (percentReducaoPelaLargura * larguraDaImagem) / distanciaCentral; //regra de 3
- }
- pImagem.setImage(pImagem.getImage().getScaledInstance((int) alturaDaImagem, (int) larguraDaImagem, 1));
- return pImagem;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement