OVH Cloud OVH Cloud

Redimensionner un fichier image ??

4 réponses
Avatar
john
bonjour, je voudrais savoir si il est possible de redimensionner
une image en java et de la sauvegarder ensuite dans un nouveau fichier image
??
merci d'avance.

4 réponses

Avatar
Arnaud Roger
"john" a écrit dans le message de
news:bja29j$29a$
bonjour, je voudrais savoir si il est possible de redimensionner
une image en java et de la sauvegarder ensuite dans un nouveau fichier
image

??


oui, il faut regarder du coté de JAI, Java Advanced Imaging

Arnaud R.

merci d'avance.




Avatar
Franck Lefebure
Salut,
Un exemple de code :

public static int[] generateThumbnail(String inputFileStr, String
outputFileStr, int maxDim) throws Exception {

int[] dimensions = new int[2];

// Get the image from a file.
File outputFile = new File(outputFileStr);
Image inImage = new ImageIcon(inputFileStr).getImage();

// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
scale = Math.min(scale, 1.0d);
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
dimensions[0] = scaledW;
dimensions[1] = scaledH;

// Create an image buffer in
//which to paint on.
BufferedImage outImage = new BufferedImage(scaledW, scaledH,
BufferedImage.TYPE_INT_RGB);

// Set the scale.
AffineTransform tx = new AffineTransform();

// If the image is smaller than
//the desired image size,
// don't bother scaling.
if (scale < 1.0d) {
tx.scale(scale, scale);
}

// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();

// JPEG-encode the image
//and write to file.
OutputStream os = new FileOutputStream(outputFile);
//reponse.setContentType("image/jpeg");
//OutputStream os = reponse.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
encoder.encode(outImage);
os.close();
inImage.flush();
outImage.flush();

return dimensions;

--
--
Franck Lefebure
equipe web http://www.orangecaraibe.com
mailto:
0590323872
0690569880
"john" a écrit dans le message de news:
bja29j$29a$
bonjour, je voudrais savoir si il est possible de redimensionner
une image en java et de la sauvegarder ensuite dans un nouveau fichier
image

??
merci d'avance.




Avatar
john
en fait j'ai trouve plus simple aujourd'hui :

ImageIcon Icone = new ImageIcon(PicTmp.getImgPosBase());

Image ImgTmp = Icone.getImage();

ImgTmp = ImgTmp.getScaledInstance(ImgTmp.getWidth(null)/7,
ImgTmp.getHeight(null)/7, Image.SCALE_SMOOTH);

Icone.setImage(ImgTmp);

ivjImg1Button.setIcon(Icone);

ivjImg1Button.repaint();



avec ce code pour la creation du bouton :

//Prise de l'image et redimensionnement

ImageIcon Img = new ImageIcon(getClass().getResource(ImgPath));

Image image = Img.getImage();

image = image.getScaledInstance(image.getWidth(null)/7,
image.getHeight(null)/7, Image.SCALE_SMOOTH);

Img.setImage(image);


//Definition du bouton

ivjImg1Button = new JButton();

ivjImg1Button.setName("");

ivjImg1Button.setIcon(Img);

ivjImg1Button.setText("Vide");

ivjImg1Button.setMargin(new java.awt.Insets(0, 0, 0, 0));

ivjImg1Button.setHorizontalTextPosition(SwingConstants.CENTER);

ivjImg1Button.setVerticalTextPosition(SwingConstants.BOTTOM);

ivjImg1Button.setBounds(6,6,130,130);
Avatar
Franck Lefebure
Ah désolé, je pensais que la question était dans un contexte web, pas swing

--
--
Franck Lefebure

"john" a écrit dans le message de news:
bjiann$91o$
en fait j'ai trouve plus simple aujourd'hui :

ImageIcon Icone = new ImageIcon(PicTmp.getImgPosBase());

Image ImgTmp = Icone.getImage();

ImgTmp = ImgTmp.getScaledInstance(ImgTmp.getWidth(null)/7,
ImgTmp.getHeight(null)/7, Image.SCALE_SMOOTH);

Icone.setImage(ImgTmp);

ivjImg1Button.setIcon(Icone);

ivjImg1Button.repaint();



avec ce code pour la creation du bouton :

//Prise de l'image et redimensionnement

ImageIcon Img = new ImageIcon(getClass().getResource(ImgPath));

Image image = Img.getImage();

image = image.getScaledInstance(image.getWidth(null)/7,
image.getHeight(null)/7, Image.SCALE_SMOOTH);

Img.setImage(image);


//Definition du bouton

ivjImg1Button = new JButton();

ivjImg1Button.setName("");

ivjImg1Button.setIcon(Img);

ivjImg1Button.setText("Vide");

ivjImg1Button.setMargin(new java.awt.Insets(0, 0, 0, 0));

ivjImg1Button.setHorizontalTextPosition(SwingConstants.CENTER);

ivjImg1Button.setVerticalTextPosition(SwingConstants.BOTTOM);

ivjImg1Button.setBounds(6,6,130,130);