Redimensionné une image

damien soissons Messages postés 11 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 4 juillet 2005 - 9 mai 2005 à 13:53
damien soissons Messages postés 11 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 4 juillet 2005 - 10 mai 2005 à 15:37
Bonjour a tous !



Je suis un peut en galere je cherche a affiché 2 images ( et ca j'y
arrive ) le probleme c'est que ces images sont trop grande je
cherche donc a les redimensionné de facon a ce qu'elle ne
sortent pas de l'ecran, si qqun a une idee....



Merci d'avance

6 réponses

safisoft Messages postés 489 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 13 mai 2009 6
9 mai 2005 à 14:25
je connais pas une méthode prédefinie pour redimensionner une image
mais tu pe la definir toi même, tu pe te servire de la classe CImageBin
dans cette source: http://www.javafr.com/code.aspx?ID=30103
pour decomposer ton image en pixels ds un tableau, après tu definie ta
nouvelle Image avec les nouvelles dimensions, tu calcule le pourcentage
de reduction, tu recupère le Graphics de ta nouvelle Image pour y
dessiner les moyennes des pixels correspondants à un nouveau pixel dans
ta nouvelle image: par exemple si tu ve reduir ton image à 50%, un
pixel ds la nouvelle est la moyenne de 4 pixels de l'originale.

la moyenne se calcule comme la moyenne d'un vecteur si t'as decomposé
ton image en 3 couches (rouge,bleu,vert) sinon c'est plus facile.

OK?
0
wildcat31 Messages postés 46 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 28 août 2005 3
9 mai 2005 à 14:27
Bonjour,
Voici un exemple de redimensionnement sur la taille d'un JLabel qui contient l'image.

entrée : BufferedImage im

// rezise
int height;
int width;
if( (im.getWidth() / (double)jLabelImage.getWidth())
> (im.getHeight() / (double)jLabelImage.getHeight()) )
{
// ajuste sur la largeur
width = jLabelImage.getWidth();
height = (int) Math.round(im.getHeight() * width / (double)im.getWidth() ;
}
else
{
height = jLabelImage.getHeight();
width = (int) Math.round(height * im.getWidth() / (double)im.getHeight() ;
}
Image image = im.getScaledInstance(width,height,Image.SCALE_DEFAULT);
im = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
im.getGraphics().drawImage(image, 0, 0, null);

jLabelImage.setIcon(new ImageIcon(im));
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
9 mai 2005 à 15:00
Salut



Pour le redimensionnement d'une image de type GIF, JPEG ou PNG voici ma source :

http://www.javafr.com/code.aspx?ID=26783



Je pense qu'il n'y a pas mieux et pas plus rapide, ici tu peux faire
une capture d'écrane et ensuite tu redimensionne cette capture :



public class ScreenShotFactory {





public final static String IMAGE_TYPE_JPEG = "jpeg";





public final static String IMAGE_TYPE_GIF = "gif";





public final static String IMAGE_TYPE_PNG = "png";





public static void screenShot(Rectangle screenArea,


Dimension screenshotFinalDimension, String pictureName,


String compressionType) {


BufferedImage buf = null; // Notre capture d'écran originale


BufferedImage bufFinal = null; // Notre capture d'écran redimensionnée





try {


// Création de notre capture d'écran


buf = new Robot().createScreenCapture(screenArea);


} catch (AWTException e) {


e.printStackTrace();


}


// Création de la capture finale


bufFinal = new BufferedImage(screenshotFinalDimension.width,

screenshotFinalDimension.height,
BufferedImage.TYPE_INT_RGB);


// Redimensionnement de la capture originale


Graphics2D g = (Graphics2D) bufFinal.getGraphics();


g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,

RenderingHints.VALUE_INTERPOLATION_BILINEAR);


g.drawImage(buf, 0, 0, screenshotFinalDimension.width,

screenshotFinalDimension.height,
null);


g.dispose();




// Ecriture de notre capture d'écran redimensionnée


try {

ImageIO.write(bufFinal,
compressionType, new File(pictureName));


} catch (IOException e) {


e.printStackTrace();


}



}





public static void main(String[] args) {


ScreenShotFactory.screenShot(new Rectangle(0, 0, 100, 100),


new Dimension(50, 50), "test.png",

ScreenShotFactory.IMAGE_TYPE_PNG);


}


}



@+
0
damien soissons Messages postés 11 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 4 juillet 2005
10 mai 2005 à 12:19
merci a vous tous, et surtoot a toi : neodante, cela m'a bien
depanné. pour continuer avce mes questions a propos d'image je voulais
savoir si qqun a connaissance de l'existance d'un moyen de
redimensionne en gradant les proportions, ne vs prenez po trop la
tete je peut aussi code un truc qui fasse ca....





@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wildcat31 Messages postés 46 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 28 août 2005 3
10 mai 2005 à 12:45
ben c'est ce que fait le code que je t'ai filé. Il regarde quel côté (hauteur ou larguer) de JLabel est le plus contraignant, et adapte l'autre côté en gardant les proportions.
0
damien soissons Messages postés 11 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 4 juillet 2005
10 mai 2005 à 15:37
C tout a fait vrai...

Je m'etait seulement interesse au redimensionnement....



Oui je sui un branque j'ai un peu honte ....



Merci
0
Rejoignez-nous