JAVA images

 
Accueil

   Jeux & Stratégie
   Le Commodore 64

   Choix du compilateur
   L'API Win32
   Dev-C++ 4
   Télécharger

   Le compilateur
   Les démos du JDK
   La création d'image
   Exemples d'applets

The Games Factory

3D et graphisme

La creation d'image en java , dans des applets.

Attention, 3 types d'images, créées de manière différentes.

  1. A partir d'un fichier avec getImage()
        Image imgFond = getImage(getCodeBase(),"fond.jpg");
    ou  Image imgFond = getImage("im0.gif");
    
    Méthode utilisable seulement par la classe Applet (ou Toolkit)
    On l'anime en superposant une suite d'images dans l'écran Graphics g.

  2. A partir d'un ImageProducer avec createImage()
        ImageProducer producer ;
        Image img = createImage(producer) ;
    
    C'est une méthode de la classe java.awt.Component donc d'Applet, de Container, Panel,Canvas...

    - L'ImageProducer peut etre soit un MemoryImageSource pour créer l'image à partir d'un tableau d'entiers pixels[] ou chaque entier contient les 4 octets alpha,R V et B.
        MemoryImageSource source ;
        source = new MemoryImageSource(w, h, pixels, 0, w) ;
        Image img = app.createImage(source) ;
    
    On peut en plus l'animer en rajoutant juste apres la création du MemoryImageSource :
        source.setAnimated(true) ;
    
    et pour modifier l'image il suffit de modifier le tableau pixel[] et d'en informer la source par newPixel() :
        pixel[i] = ...
        source.newPixels(x, y, w, h) ;
    
    - Ou soit un FilteredImageSource : exemple de filtre, la classe filtre doit comporter la méthode filterRGB()
    class FiltreInv extends RGBImageFilter
    {
        public FiltreInv()
        {
            canFilterIndexColorModel = true;
        }
    
        public int filterRGB(int x, int y, int rgb) {
            rgb = rgb modifie...;
            return rgb ;
        }
    }
    
    Image imgFiltree, img ;
    FiltreInv filtreInv = new FiltreInv() ; 
    ImageProducer prod = img.getSource() ;
    		
    imgFiltree = createImage(new FilteredImageSource(prod,filtreInv));
    

  3. SEULEMENT POUR LE DOUBLE BUFFERING.
    avec createImage(int, int)
    Crée une image hors écran dans laquelle on peut dessiner pour le double buffering.
        Image imgTampon = 
            createImage(getSize().width,getSize().height) ;
        Graphics gTampon = imgTampon.getGraphics() ;
    
    Méthode de la classe java.awt.Component donc d'Applet, de Container, Panel, Canvas...
    C'est le seul cas ou on utilise g=getGraphics() .

    L'applet gomme utilise les 3 types.

Les containers

Window -- Frame
       -- Dialog
                -- FileDialog
Panel  
       -- Applet              
Le gestionnaire de mise en page par défaut est :
FlowLayout pour les Panels.
BorderLayout pour les Frames.