static Tableau frame ;
public static void main ( String[] args ) {
frame = new Tableau() ;
frame.setVisible(true) ;
}
}
class Tableau extends JFrame {
static final Dimension screensize =
Toolkit.getDefaultToolkit().getScreenSize();
//static final int largeurEcran = screensize.width;
//static final int hauteurEcran = screensize.height + 2;
int largeurEcran = 800;
int hauteurEcran = 900;
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 1 oct. 2006 à 14:17
Salut,
En ce qui conserne ta deuxieme question, ca depend:
-> si tu compile avec le 1.5 ca ne marchera pas sur le 1.2
-> si tu compile avec le 1.2 ca devrais marcher avgec le 1.5
2 - Avec un JLabel(le mieux tu peux meme lui rajouter des composants dedans
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class AfficheImage {
public static void main(String[] args) {
new Tableau().setVisible(true);
}
}
class Tableau extends JFrame {
private static final long serialVersionUID = -1654172985512850048L;
private static final Dimension SIZE = new Dimension(400, 300);
public Tableau() {
super();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(SIZE.width, SIZE.height);
//init de l'image.
ImageIcon image = new ImageIcon("lena.JPEG");
image.getImage();//plus ou moins equivalent au mediatracker
JLabel photo = new JLabel(image);
setContentPane(photo);
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 3 oct. 2006 à 12:59
Salut,
après avoir testé (hihi j'ai pas testé les codes posté :P)
les codes 1 et 2 fonctionnent très bien donc cela peut venir de ton image, de son emplacement ou autre(j'en ai posté 2 pas 3 ;) )
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 3 oct. 2006 à 14:45
Salut,
ok.....
exemple sans JAI(Java Advanced Imaging) mais tu peux te renseigner dessus
bon pour l'acces aux pixels tu peux utiliser PixelGrabber idem pour récup. tous les pixels de ton image (ref javadoc)
//ici on recup tous les pixels de l'image
/**
* Récupération des pixels d'une image
* @param img image source
* @return Retourne les pixels de l'image
public int[] getPixels(Image img){
if(img == null) return null;
int [] pixels = null;
PixelGrabber pg = null;
int w = image.getWidth(null);
int h = image.getHeight(null);
pixels = new int[w * h];
pg = new PixelGrabber(img, 0, 0, w, h, pixels, 0, w);
try {
pg.grabPixels();
} catch (Exception e) {
System.out.println("Pixel Grabbing interrupted!");
return null;
}
return pixels;
}
/**
* Recupere la couleur d'un pixel
* @param img image source
* @param x coordonnee en X
* @param y coordonnee en Y
* @return Retourne la couleur du pixel ou null
*/
public static Color getPixelColor(BufferedImage bi, int x, int y){
if(bi == null) return null;
int c = bi.getRGB(x,y);
int red = (c & 0x00FF0000) >> 16;
int green = (c & 0x0000FF00) >> 8;
int blue = c & 0x000000FF;
return new Color(red, blue, green);
}
/**
* Créer un filtre de convolution pour la détection des contours
* @param source l'image source
* @return Retourne l'image filtré
*/
public static BufferedImage contour(BufferedImage source){
float[] filter = { 0f, -1f, 0f, -1f, 4f, -1f, 0f, -1f, 0f };
Kernel kernel = new Kernel(3, 3, filter);
ConvolveOp op = new ConvolveOp(kernel);
return op.filter(source, null);
}
et vu que je suis de bonne humeur voici 2 méthodes pour passer d'un BufferedImage vers une image et inversement:
/**
* Transforme une image en bufferedImage
* @param image l'image à transformer
* @return Retourn l'image convertie ou null (si l'image source été null)
*/
public static BufferedImage createBufferedImage(Image img) throws OutOfMemoryError {
if(img == null) return null;//si l'image est null pas besoin de continuer
if (img instanceof BufferedImage)//si l'image est deja une instance de BufferedImage on la retourne
return (BufferedImage) img;
// On s'assure que l'image soit bien chargée
img = new ImageIcon(img).getImage();
boolean hasAlpha = false;
//utilisation d'un 'grabber' pour retrouver le model de couleur de l'image
//normalement le grab du pixel en haut a gauche est suffisant.
PixelGrabber pg = new PixelGrabber(image, 0, 0, 1, 1, false);
try {
if(!pg.grabPixels()) hasAlpha = false;
else
// on check si le model de couleur correspond ou non a un chanel alpha
hasAlpha = pg.getColorModel().hasAlpha();
} catch (Exception e) {
}
int type;//type de couleur
// Si le BufferedImage precedement creer est null on en creer un avec un model par defaut
type = BufferedImage.TYPE_INT_RGB;
if (hasAlpha) type = BufferedImage.TYPE_INT_ARGB;
bi = new BufferedImage(img.getWidth(null), img.getHeight(null), type);
// On copie l'image dans le BufferedImage
Graphics g = bi.createGraphics();
// maintenant on la dessine
g.drawImage(img, 0, 0, null);
g.dispose();
return bi;
}
/**
* Transforme un BufferedImage en Image
* @param bufferedImage le BufferedImage à transformer
* @return Retourn l'image convertie ou null (si l'image source été null)
*/
public static Image createImage(BufferedImage source) throws OutOfMemoryError {
if(source == null) return null;
return toolkit.createImage(source.getSource());
}
voilou maintenant pour le reste bon courrage (je ne vais pas tous te faire )
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."