Este artigo descreve a definição e o uso de classes de escala de alta qualidade implementadas em Java. Compartilhe -o para sua referência, como segue:
Encontrei muitos deles, mas não era ideal e finalmente encontrei alguém que os escreveu de um estrangeiro. Eu tenho que admitir que o que o estrangeiro escreveu é realmente incrível.
package com.test;import com.sun.image.codec.jpeg.JPEGImageEncoder;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGEncodeParam;import javax.swing.*;import java.io.File;import java.io.FileOutputStream;import java.io.ioException; importar java.awt.*; importar java.awt.image.bufferiMage; importar java.awt.image.kernel; importar java.awt.image.convolveop; public class ImageUtil {public static void (arquivo original, arquivo de arquivo, arquivo, arquivado; 1) {lança nova ilegalArgumentException ("A qualidade deve estar entre 0 e 1"); } Imageicon II = new Imageicon (originalfile.getCanonicalPath ()); Imagem i = ii.getImage (); Image RedImageMage = NULL; int iwidth = i.getwidth (nulo); int iHeight = i.getHeight (nulo); if (iwidth> iHeight) {redengendImage = i.getScaledInstance (newwidth, (newwidth * iHeight) / iwidth, image.scale_smooth); } else {rededImage = i.getScaledInstance ((newwidth * iwidth) / iHeight, newwidth, image.scale_smooth); } // Este código garante que todos os pixels da imagem sejam carregados. Imagem temp = new imageicon (redimensionado) .getImage (); // Crie a imagem em buffer. BufferImage bufferImage = new bufferImage (temp.getwidth (null), temp.getheight (null), bufferiMage.type_int_rgb); // Copie a imagem para a imagem em buffer. Gráficos g = bufferImage.creategraphics (); // Limpe o fundo e pinte a imagem. g.setColor (color.white); G.FillRect (0, 0, temp.getwidth (null), temp.getheight (nulo)); G.Drawimage (temp, 0, 0, nulo); G.Dispose (); // amolece. SoftenFactor float = 0,05f; float [] softenArray = {0, amoltenFactor, 0, amoltenFactor, 1 - (SoftenFactor * 4), SoftenFactor, 0, SoftenFactor, 0}; Kernel kernel = novo kernel (3, 3, softenarray); COPLVEOP COP = NOVO CONCOLVEOP (KERNEL, CONCOLVEOP.EDDE_NO_OP, NULL); bufferImage = cop.filter (bufferImage, nulo); // Escreva o JPEG em um arquivo. FileOutputStream out = new FileOutputStream (redimensionado); // codifica a imagem como um fluxo de dados jpeg jpegImageEncoder coder = jpegCodec.createjpegencoder (out); JPEGENCODEPARAM param = coder .getDefaultJPEGENCODEPARAM (bufferImage); param.setQuality (qualidade, verdadeiro); coder.setJpegencodeParam (param); coder.encode (bufferImage); } // Exemplo de uso public static void main (string [] args) lança ioexception {// file originalImage = new File ("c: //11.jpg"); // redimensionamento (originalImage, new File ("c: //11-0.jpg"), 150, 0,7f); // reaise (reais 1f); Arquivo originalImage = novo arquivo ("c: //1207.gif"); redimensionar (originalImage, novo arquivo ("c: //1207-0.jpg"), 150, 0,7f); redimensionar (originalImage, novo arquivo ("c: //1207-1.jpg"), 150, 1f); }}Para mais conteúdo relacionado a Java, os leitores interessados neste site podem visualizar os tópicos: "Resumo das habilidades de operação da imagem Java", "Resumo da Data e Hora de Java e Habilidades de Operação", "Resumo de Java Operação Dom Node Habilidades", "Resumo dos arquivos Java e habilidades de operação de diretório" e "tutoriais da estrutura de dados Java e Algorithm".
Espero que este artigo seja útil para a programação Java de todos.