1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| package graphique;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import com.sun.media.sound.Toolkit;
public class Resize {
protected static Image image;
protected static java.awt.Toolkit toolkit;
protected static BufferedImage bufImage;
Resize(String source){
/** Accès au toolkit : */
toolkit = java.awt.Toolkit.getDefaultToolkit();
/** creation de l image*/
image=toolkit.getImage(source);
/**redimension de l image*/
image=scale(image, 400, 300);
bufImage=toBufferedImage(image);
ecrireImage(source);
}
/**
* Redimensionne une image.
*
* @param source Image à redimensionner.
* @param width Largeur de l'image cible.
* @param height Hauteur de l'image cible.
* @return Image redimensionnée.
*/
public static Image scale(Image source, int width, int height) {
/* On crée une nouvelle image aux bonnes dimensions. */
BufferedImage buf = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
/* On dessine sur le Graphics de l'image bufferisée. */
Graphics2D g = buf.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(source, 0, 0, width, height, null);
g.dispose();
/* On retourne l'image bufferisée, qui est une image. */
return buf;
}
public static void ecrireImage(String cheminSource){
File out = new File(cheminSource);
try {
ImageIO.write(bufImage, "jpg", out);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(out);
}
public BufferedImage toBufferedImage(Image image) {
/** On test si l'image n'est pas déja une instance de BufferedImage */
if( image instanceof BufferedImage ) {
/** cool, rien à faire */
return( (BufferedImage)image );
} else {
/** On s'assure que l'image est complètement chargée */
image = new ImageIcon(image).getImage();
/** On crée la nouvelle image */
BufferedImage bufferedImage = new BufferedImage(
image.getWidth(null),
image.getHeight(null),
BufferedImage.TYPE_INT_RGB );
Graphics g = bufferedImage.createGraphics();
g.drawImage(image,0,0,null);
g.dispose();
return( bufferedImage );
}
}
} |
Partager