Ecrire sous image
Résolu
kh09
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
kh09 -
kh09 -
bonjour , je suis en trains de développer une petite application dans laquelle je besoin d'avoir une sous image d'une image donnée , j'ai essayé avec se code mais aucune résultat ne paraisse
BufferedImage bii= bi.getSubimage(y, w, m, h);
Graphics2D g =bii.createGraphics();
g.drawImage(bii, null,0, 0);
g.drawImage(bii, 0, 0, null);
JFrame kk= new JFrame();
JButton ss=new JButton();
kk.add(ss,g);
kk.setVisible(true);
//g.drawImage(bii, m, h, null);
String f ="a.JPEG";
boolean mv= ImageIO.write(bii, ".JPEG", new File(f));
JFrame frame = new JFrame();
JLabel label = new JLabel( new ImageIcon("1.jpg") );
frame.getContentPane().add(label);
frame.setVisible(true);
j'ai essayé de savoir si le problème est dans la création ou l'enregistrement de l'image mais je n'ai pas réussi. Votre aide SVP
BufferedImage bii= bi.getSubimage(y, w, m, h);
Graphics2D g =bii.createGraphics();
g.drawImage(bii, null,0, 0);
g.drawImage(bii, 0, 0, null);
JFrame kk= new JFrame();
JButton ss=new JButton();
kk.add(ss,g);
kk.setVisible(true);
//g.drawImage(bii, m, h, null);
String f ="a.JPEG";
boolean mv= ImageIO.write(bii, ".JPEG", new File(f));
JFrame frame = new JFrame();
JLabel label = new JLabel( new ImageIcon("1.jpg") );
frame.getContentPane().add(label);
frame.setVisible(true);
j'ai essayé de savoir si le problème est dans la création ou l'enregistrement de l'image mais je n'ai pas réussi. Votre aide SVP
A voir également:
- Ecrire sous image
- Ecrire en gras sur whatsapp - Guide
- Image iso - Guide
- Comment écrire # sur pc - Guide
- Écrire en majuscule - Guide
- Ecrire en miroir - Guide
1 réponse
C'est juste pour l'afficher ton morceau d'image ? Dans ce cas tu devrais utiliser un autre g.draw (avec plus de paramètres). Exemple :
import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; class ResizePanel extends JPanel { private static final long serialVersionUID = 1; private Image image; private Rectangle bounds; public ResizePanel(Image image, Rectangle bounds) { this.image = image; this.bounds = bounds; } @Override public void paint(Graphics g) { super.paint(g); g.drawImage(image, 0, 0, 0+bounds.width, 0+bounds.height, bounds.x, bounds.y, bounds.x+bounds.width, bounds.y+bounds.height, this); } } public class Test { public static void main(String[] args) throws IOException { Image image = ImageIO.read(new File("C:/test.png")); Rectangle bounds = new Rectangle(100, 100, 200, 200); ResizePanel panel = new ResizePanel(image, bounds); JFrame frame = new JFrame(); frame.setContentPane(panel); frame.setSize(300,300); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
kh09
merci pour la solution elle m'a aidé. Est ce que vous avez une idée comment enregistré l'image affiché sous format jpg ?
KX
Messages postés
16761
Date d'inscription
Statut
Modérateur
Dernière intervention
3 020
Je crois avoir déjà fair un code qui permettait d'enregistrer un objet Graphics (obtenu en faisant panel.getGraphics() par exemple) directement dans un fichier il faudrait que je cherche comment, mais de mémoire le résultat était d'assez mauvaise qualité. Il vaudrait mieux manipuler directement l'image originale, d'autant que c'est très simple...
kh09
merci beaucoup pour votre aide :)
KX
Messages postés
16761
Date d'inscription
Statut
Modérateur
Dernière intervention
3 020
Remarque : voici comment on pourrait enregistrer directement ce qui est affiché dans une image, mais ce n'est pas la bonne manière de faire pour une image.
kh09
merci :)