Les objets ImageReReder sont généralement instanciés par les classes d'interface du fournisseur de services (SPI) dans un format spécifique. La classe des fournisseurs de services (comme une instance d'imageReredersPI) est enregistrée auprès de IIOreGistry, qui utilise le premier pour formater la reconnaissance et représenter le lecteur et l'écrivain des formats disponibles.
La sous-classe BufferedImage décrit une image avec un tampon de données d'image accessible. BufferedImage se compose de Colormodel et de raster des données d'image. Le nombre et le type de bande dans SampleModel de Raster doivent correspondre au nombre et au type de ColorModel requis pour représenter ses composants de couleur et alpha. Les coordonnées supérieures gauche de tous les objets BufferedImage sont (0,0). Par conséquent, tout raster utilisé pour construire un tamponage doit satisfaire: minx = 0 et miny = 0.
Inutile de dire, jetons un coup d'œil.
/ ** * / package com.b510; importer java.awt.image.bufferedImage; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; import java.io.ioexception; import java.util.date; import java.util.iterat javax.imageio.imageReader; Importer javax.imageio.stream.imageInputStream; classe publique ImageUtil {/ ** * Le nom du chemin d'image source est le suivant: c: /1.jpg * / private String srcpath = "e: /pool.jpg"; public ImageUtil () {} public static static void Main (String [] args) util = new ImageUtil (); util.getImageSizeByImageReader (util.getsrcpath ()); util.getImageSizeByBufferedImage (util.getsrcpath ());} / ** * Utilisez l'imageReader pour obtenir la taille de l'image * * @param src * Source Path * / public Void getImageSizeByImageReaders begintime = new Date (). GetTime (); fichier file = new File (src); try {iterator <ImageReader> Readers = imageo.getImageRedersByFormatName ("jpg"); imageReader Reader = (ImageReReader) Readers.next (); ImageInputStream (ImageIo.createImageInputStream (file); lecture. true); System.out.println ("Width:" + Reader.getWidth (0)); System.out.println ("Height:" + Reader.GetHeight (0));} Catch (ioException e) {e.printStackTrace ();} LongneTtime = New Date (). ["+ (Fintime - Begintime) +"] MS ");} / ** * Utilisez BufferedImage pour obtenir la taille de l'image * * @param src * Path d'image source * / public void getImageSizeByBufferedImage (String SRC) {long begintime = new Date (). GetTime (); File File = new File (src); FileInputStream est = null; Try {est = new File (src); FileInputStream(file);}catch (FileNotFoundException e2) {e2.printStackTrace();}BufferedImage sourceImg = null;try {sourceImg = javax.imageio.ImageIO.read(is);System.out.println("width:" + sourceImg.getWidth());System.out.println("height:" + SourceImg.GetHeight ());} Catch (ioException E1) {e1.printStackTrace ();} Long Fintime = new Date (). GetTime (); System.out.println ("Time to Use to [BufferedImage] pour obtenir la taille de l'image: [" + (Fintime - BEAD-TEMPS) + "] MS"); void setsrcPath (String srcPath) {this.srcpath = srcpath;}}Résultats en cours:
Il est facile pour vous de comprendre ... quelle méthode devez-vous choisir ...
Résumer
Ce qui précède est tout le contenu de cet article sur l'obtention d'instances de taille d'image dans ImageReReder et BufferedImage en Java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!