Ecrire sous image
Résolu
kh09
Messages postés
1
Statut
Membre
-
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);
}
}
BufferedImage image = ImageIO.read(new File("C:/test.png")); Rectangle bounds = new Rectangle(100, 100, 200, 200); BufferedImage sub = image.getSubimage(bounds.x, bounds.y, bounds.width, bounds.height); ImageIO.write(sub, "jpg", new File("C:/test.jpg"));public static void saveComponent(Component component, String formatName, File output) throws IOException { BufferedImage buf = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_RGB); component.paintAll(buf.getGraphics()); ImageIO.write(buf, formatName, output); } public static void main(String[] args) throws IOException { JFrame frame = new JFrame(); frame.setSize(300,300); frame.add(new JButton("Nord"),BorderLayout.NORTH); frame.add(new JButton("Sud"),BorderLayout.SOUTH); frame.add(new JButton("Centre"),BorderLayout.CENTER); frame.add(new JButton("Est"),BorderLayout.EAST); frame.add(new JButton("Ouest"),BorderLayout.WEST); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); saveComponent(frame.getContentPane(),"png",new File("C:/test.png")); }