IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Traitement d'image gourmande


Sujet :

2D Java

  1. #1
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut Traitement d'image gourmande
    Bonjour,
    Mon but est de crée un sorte de calque qui gère la transparence.
    Es t'il normal que ce simple bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BufferedImage bImage = new BufferedImage(p.getScreenWidth(), p.getScreenHeight(), BufferedImage.TYPE_INT_ARGB );
    Graphics graphics = bImage.createGraphics();
    g.drawImage(Toolkit.getDefaultToolkit().createImage(bImage.getSource()), 0, 0, null);
    graphics.dispose();
    fasse monter le travail du processeur de 3 à 10% et la mémoire vive de 50 à 650 Mo?
    Sachant que ce code et exécuté 60 fois par secondes.

    Es-ce que je m'y prend mal?
    Y a t'il d'autres moyens?

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Déjà, tu crées une image de la taille de l'écran, ce qui consiste à créer une zone mémoire pour stocker tous les pixels : 4 octets par pixels en ARGB, à multiplier par le nombre de pixels (largeur*hauteur de l'écran). Tu créés un tampon pour dessiner, qui consiste à réserver un peu de mémoire supplémentaire. Puis tu dupliques l'image pour la redessiner dans le tampon, ce qui consiste à au moins tripler la mémoire utilisée (le tampon reçoit le dessin de l'image, donc prend au moins la mémoire nécessaire pour). Tout ça pour rien, puisque tu crées une image totalement transparente que tu dupliques (donc tu obtiens une image totalement transparente) pour la dessiner sur elle-même (une image transparente dessinée sur une image transparente ça donne... une image transparente !!!).

    Tout ça prend du cpu évidemment, surtout à raison de 60 fois par seconde ! Ce qui ne doit pas laisser beaucoup de temps au GC pour libérer la mémoire utilisée par les images intermédaires, qui attend donc d'avoir un créneau (ou d'être obligé de le faire), d'où montée en flêche de la mémoire occupée.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    (une image transparente dessinée sur une image transparente ça donne... une image transparente !!!)


    Oui, bien sur que, là, le code ne sert à rien.
    Je vais pas m'amuser à rajouter tout le dessin que je dessine dedans, ca ne te sert a rien de voir ca.
    Ce que je veux faire comprendre c'est que je veux créé un calque sur lequel dessiner ce que je veux, qui fasse au final, la taille de l'écran.
    Et ce que je veux savoir c'est si je m'y prend bien, ou si il y a d'autres moyens moins gourmand.

    Je rigole pas méchamment, c'est juste amusant de voir qu'on arrive pas difficilement à ce comprendre tout les deux.
    Tu serai pas aspi, par hasard? (T'es pas obliger de répondre)
    Moi je suis un peut sur le début du spectre, c'est peut-être pour ça que c'est le bordel.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    C'est de cette ligne que je voulais parler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(Toolkit.getDefaultToolkit().createImage(bImage.getSource()), 0, 0, null);
    Elle duplique une image transparente pour la dessiner sur une image transparente, ce qui ne sert strictement à rien d'autre qu'à consommer de la mémoire et du cpu.

    Si tu veux dessiner dans une image transparente, il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BufferedImage bImage = new BufferedImage(p.getScreenWidth(), p.getScreenHeight(), BufferedImage.TYPE_INT_ARGB );
    Graphics graphics = bImage.createGraphics();
     
    // et là tu dessines tout ce que tu veux
     
    graphics.dispose();
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Non, sinon j'ai rein a l'écran.
    Attends je te montre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void paintComponent(Graphics g){
     
    //là je dessine sur ma feuille "g.draw()"
     
    BufferedImage bImage = new BufferedImage(p.getScreenWidth(), p.getScreenHeight(), BufferedImage.TYPE_INT_ARGB );
    Graphics2D graphics = bImage.createGraphics();
    graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OUT));
     
    //là je dessine sur mon calque "graphics.draw()"
     
    g.drawImage(Toolkit.getDefaultToolkit().createImage(bImage.getSource()), 0, 0, null); //là je pose mon calque sur ma feuille
    g.dispose();
     
    }
    Si j'enlève cette ligne, j'ai plus rien a l'écran.
    Et moi ce qui m'intéresse c'est surtout ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OUT));
    Alors, ton avis?

    (Apparemment ma blague t'as pas fait rire. T'inquiète pas, j'en ferai des mieux. )

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ok, ça change tout d'avoir le contexte.

    Déjà, inutile de faire la copie de l'image : normalement, g.drawImage(bImage, 0, 0, null); suffit à dessiner l'image. Ensuite, il ne faut pas disposer le contexte graphique du composant, mais celui de l'image, et de préférence avant de la redessiner.

    En revanche, difficile de déterminer de l'intérêt du composite sans savoir quel dessin tu veux faire.

    Enfin, pourquoi ne pas dessiner directement dans le contexte du composant ? Si le but est de faire du multibuffering, utiliser soit le hint de JPanel (le paramètre boolean isDoubleBuffered, ou la méthode setDoubleBuffered), soit utiliser la classe BufferStrategy (Voir https://docs.oracle.com/javase/tutor...doublebuf.html). Et si tu es dans une fenêtre fullscreen, utilise un rendu actif plutôt que passif.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Heuuu, comment dire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BufferStrategy buffer;
    graphics = buffer.getDrawGraphics();
    graphics.fillRect(p.getMX(), p.getMY(), 10, 10);
    graphics.dispose();
    buffer.show();
    Ca marche pas.

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    ça marche pas, c'est vague comme description de problème !

    Un exemple ici ou ici.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    J'ai pas réussi avec JPanel, donc je suis passer a Canvas.
    Sauf que avec Canvas, ca marche a moitié.
    J'ai ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BufferStrategy bs = getBufferStrategy();
    if(bs == null){createBufferStrategy(2); return;}
    Graphics g2 = bs.getDrawGraphics();
    g2.setColor(Color.red);
    g2.fillRect(getMX(), getMY(), 10, 10);
    bs.show();
    g2.dispose();
    Dans paint(Graphics g) de Panel extends Canvas.
    Et j'ai deux problèmes:
    1- Le carré s'affiche mais ne s'efface pas (même problème qu'avec JPanel l'autre jour)
    2- L'image clignote.
    (je n'ai pas d'erreurs)
    Merci de ton aide.

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Ce code ne doit pas être invoqué dans la méthode paint() (ou paintComponent() ou ce genre de méthode), mais via un timer. Il faut que tu nettoies l'image avant de dessiner dedans (avec un Graphics.clearRect()) (les différentes images utilisées sont en nombre fixe, et on ne fait que dessiner sur les unes après les autres, en boucle).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Ok merci, le clearRect() marche tres bien;
    par contre j'ai pas compris le Timer,
    Le code que j'ai donné ce trouve dans paint() puisque c'est un Canvas.
    paint() est appelé depuis un while(true){} 60 fois par sec.
    Donc je sais pas trop comment adapter le machin et quand j'essaye ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
                    TimerTask task = new TimerTask()
    		{
    			@Override
    			public void run() 
    			{
    				BufferStrategy bs = getBufferStrategy();
    				if(bs == null){createBufferStrategy(2); return;}
    				Graphics g2 = bs.getDrawGraphics();
    				g2.clearRect(0,0, getScreenWidth(), getScreenHeight());
    				g2.setColor(Color.red);
    				g2.fillRect(getMX(), getMY(), 10, 10);
    				bs.show();
    				g2.dispose();
    			}	
    		};
     
    		Timer timer = new Timer();
    		timer.scheduleAtFixedRate(task, 0, 1000);
    qui ce trouve dans paint() parce que je sais pas ou le mettre.

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Et bien, appelle-le dans ton while true, au lieu de paint() (tu fais une autre méthode) et tu laisses paint() vide.
    Mais, le mieux serait de faire un time, pour exécuter la tâche (l'appel de cette méthode) toutes les secondes (comme j'ai fait ici).
    Au moins, ne mets ni la création (createBufferStrategy), ni la récupération (getBufferStrategy), dans la boucle : c'est assez consommateur (surtout la création). La seule contrainte, c'est qu'il faut appeler createBuffereStrategy quand le composant est visible.

    Pour l'appel du start() du timer, c'est au même endroit que tu lances ta boucle infinie.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Je n'ai rien compris, j'ai carrément tout fait planter.
    Mon ordi a crasher quand j'ai lancer le "truc".
    En plus je ne comprend pas le but, je suis déjà dans un Thread.
    Mon code est comme ca:
    Je créé une classe quelconque dans laquelle j'ai main().
    Je l'envoi a Frame avec new Frame(quelconque).
    Frame lance un Thread, qui lance un while(true), qui lance un panel.repaint(), qui lui même lance un quelconque.display(Graphics2D g).
    Donc je comprend pas ce que je doit faire.
    J'ai pas le temps d'etre plus claire, je go au taf.

  14. #14
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Voila, désolé, je suis de retour.
    Je disais donc, j'ai essayer ta solution.
    J'ai enlever le contenu de paint() et j'ai créé start() dans Panel(qui hérite de Canvas).
    Dedans j'y ai mis le code que j'avais donner plus haut (celui avec Timer).
    Et j'appelle ce start() depuis while(true) et là, paf, ça à fait des Chocapic.

    Donc j'ai pas bien compris ce que je doit faire,
    j'ai même pas compris pourquoi je dois le faire comme ca.

    Merci de ton aide.

  15. #15
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    J'ai trouver le coupable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g2.setComposite(AlphaComposite.getInstance(AlphaComposite.DST_OVER));
    Si je supprime cette phrase, j'ai plus de problème.
    Sauf que oui, j'ai un problème puisque c'est de cette ligne d'on j'ai besoin pour la suite.

  16. #16
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    C'est bon, j’abandonne, il n'y a pas de solution.
    Faut que je passe à OpenGL mais j'ai pas envie et je fait ce que je veux.
    Voila.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traitement d'images : quel langage?
    Par belasri dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 07/10/2005, 09h59
  2. Réponses: 5
    Dernier message: 15/01/2005, 18h29
  3. commande c++ pour le traitement d'images
    Par mateo.14 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2005, 10h46
  4. [lib] Traitement d'images
    Par Gogoye dans le forum Multimédia
    Réponses: 4
    Dernier message: 19/11/2004, 16h15
  5. Traitements d'image sur PNG avec transparence
    Par Ingham dans le forum Langage
    Réponses: 16
    Dernier message: 02/08/2004, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo