Cet article décrit la définition et l'utilisation de classes de mise à l'échelle de haute qualité implémentées dans Java. Partagez-le pour votre référence, comme suit:
J'en ai trouvé beaucoup mais n'étaient pas idéaux, et j'ai finalement trouvé quelqu'un qui les a écrits d'un étranger. Je dois admettre que ce que l'étranger a écrit est vraiment génial.
Package Com.test; Import com.sun.image.codec.jpeg.jpegimageencoder; import com.sun.image.codec.jpeg.jpencencodec; import com.sun.image.codec.jpeg.jpencencodeparam; import javax.swing. *; importation; java.io.ioException; import java.awt. *; import java.awt.image.bufferedImage; import java.awt.image.kernel; importer java.awt.image.convolveop; classe publique ImageUtil {public static void Resize (fichier originalfile, if (fele resisefile, newwidth, float thewear) thorwwing) thorwwing {if (feme résisfile, into {Jetez un nouveau IllégalArgumentException ("La qualité doit être comprise entre 0 et 1"); } ImageIcon ii = new ImageIcon (originalFile.getCanonicalPath ()); Image i = ii.getImage (); Image ResizeDImage = null; int iWidth = i.getWidth (null); int iheight = i.getheight (null); if (iWidth> iheight) {resIFailesImage = i.getScaledInstance (newwidth, (newwidth * iheight) / iwidth, image.scale_smooth); } else {ResizeSImage = i.getScaledInstance ((NewWidth * iWidth) / iheight, newwidth, image.scale_smooth); } // Ce code garantit que tous les pixels de l'image sont chargés. Image Temp = new ImageIcon (ResizeSImage) .getImage (); // Créez l'image tamponnée. BufferedImage BufferedImage = new BufferedImage (temp.getWidth (null), temp.getheight (null), bufferedImage.type_int_rgb); // Copier l'image à l'image tamponnée. Graphiques g = bufferedImage.creategraphics (); // Effacer le fond et peindre l'image. g.setColor (Color.white); g.fillrect (0, 0, temp.getWidth (null), temp.getheight (null)); G.DrawImage (temp, 0, 0, null); g.dispose (); // adoucisse. Float SoftenFactor = 0,05F; float [] softenarray = {0, softenfactor, 0, softenfactor, 1 - (softenfactor * 4), softenfactor, 0, softenfactor, 0}; Noyau du noyau = nouveau noyau (3, 3, softenarray); Convolveop COP = new ConvolveOp (noyau, convolveOp.Edge_no_op, null); BufferedImage = COP.Filter (BufferedImage, NULL); // Écrivez le JPEG dans un fichier. FileOutputStream out = new FileOutputStream (ResizedFile); // code pour l'image en tant que flux de données JPEG JPEGIMageEncoder Encoder = JPEGCODEC.CreateJpeCencoder (Out); JpenceCodeParam Param = Encoder .getDefaultJPegencodeParam (BufferedImage); param.setquality (Quality, True); Encoder.setJpenceCodeParam (PARAM); Encoder.Encode (BufferedImage); } // Exemple utilisation publique static void main (String [] args) lève ioException {// file originalMage = new Fichier ("c: //11.jpg"); // redimensi 1f); Fichier OriginalImage = new File ("C: //1207.gif"); redimensit (originalMage, nouveau fichier ("c: //1207-0.jpg"), 150, 0,7f); redimensit (originalMage, nouveau fichier ("c: //1207-1.jpg"), 150, 1f); }}Pour plus de contenu lié à Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Résumé des compétences de l'opération d'image Java", "Résumé des compétences de date et d'opération de temps Java", "Résumé des compétences de nœuds de Dom Java", "Résumé du fichier Java et des compétences de fonctionnement des répertoires" et "Tutorials de la structure de données et de l'algorithme Java".
J'espère que cet article sera utile à la programmation Java de tous.