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

Delphi Discussion :

Editeur d'image : Classe de gestion des images


Sujet :

Delphi

  1. #1
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut Editeur d'image : Classe de gestion des images
    Je compte developper un editeur d'image qui effectue des traitements courrant que j'effectue sur des images et qu'on ne trouve pas ailleur

    J'aimerais bien sur gerer (a long terme) l'ensemble des fichiers classiques : BMP/GIF/JPEG/PNG/TGA .....

    Autant je sais ou chercher les classes pour gerer ces fichiers, autant je me pose la question sur la classe generique qui manipulera le fichier en memoire : TBitmap ? TGraphics ?

    Le but etant d'avoir un array of XXX qui contiandra les images en memoire et qui sera manipulé par mes fonctions de dessins.

    Toute idee est la bienvenue !!

  2. #2
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177

  3. #3
    Membre éprouvé Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Points : 961
    Points
    961
    Par défaut
    je vois que vous etes assez callé en imagerie contrairement à moi ,est ce que vous avez lu le sujet précedent; peut que vous pouriez m'aider?!!

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    non je n'aime absolument pas ces unitees
    Trop gourmandes ....

    En fait je sais que l'on peut assigner un TJpegImage a un TBitmap (via assign) apres appel a la methode DibNeeded (et inversement).

    De plus la classe TImage accepte un grand nombre de formats du moment ou les unitees gerant le format est incluse dans l'application.
    Derriere TImage on a un TGraphics.

    En fait c'est a ce niveau la que j'aimerais jouer .... mais je ne suis pas sur de ne pas etre limité.

    Le but n'est pas de gerer le format en lui meme (ca ca fera parti de la sauvegarde) mais de conserver en memoire les données de l'image.

    TBitmap ? (c'ets pas trop gros pour travailler sur N images simultanement ? )
    TGraphics ? (c'est pas trop restrictif ? )
    Autre ???

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par b_reda31
    je vois que vous etes assez callé en imagerie contrairement à moi ,est ce que vous avez lu le sujet précedent; peut que vous pouriez m'aider?!!
    Vi
    J'ai meme pris ton message pour le miens :p

  6. #6
    Membre actif Avatar de petitprince
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2006
    Messages : 322
    Points : 267
    Points
    267
    Par défaut
    Moi aussi je suis très intéressé par ce que tu propose (TBitmap/TGraphic), car je suis sur un logiciel de trucage video, et je dois travailler sur un grand nombre d'image en mémoire, et j'aimerai me passer de Graphics32 et autres, trop gourmandes en effet...


    P.S.: navré de ne pas t'aider plus que ça...

  7. #7
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par petitprince
    Moi aussi je suis très intéressé par ce que tu propose (TBitmap/TGraphic), car je suis sur un logiciel de trucage video, et je dois travailler sur un grand nombre d'image en mémoire, et j'aimerai me passer de Graphics32 et autres, trop gourmandes en effet...


    P.S.: navré de ne pas t'aider plus que ça...
    Si tu as besoin d'info sur la gestion des images pas de soucis.
    J'ai fait un tit outils (a l'arrache) pour gerer des incrustations d'image et des fondus enchainés.
    Apres sur la technique du traitement de l'image ... c'est pas trop mon truc :p

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Voici, à toutes fins utiles, une fonction pour récupérer un TBitMap à partir d'un TJPEGImage :
    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
     
    function  ConvJpegEnBMP(nomFiJpeg : string) : TBitMap; // avec Jpeg dans le uses
    var       imgJPEG : TJPEGImage;
    begin     Result:=nil;
              imgJPEG := TJPEGImage.Create;
              try
                imgJPEG.LoadFromFile(nomFiJpeg);
                Result := TBitmap.Create;
                with Result do
                begin Width := imgJPEG.Width; Height := imgJPEG.Height;
                        Assign(imgJPEG);
                       //Canvas.Draw(0,0,Result);
                      //SaveToFile(ChangeFileExt(nomFiJpeg,'.BMP'));
                end;
              finally
                imgJPEG.Free;
              end;
    end; //ConvJpegEnBMP
    ... ne pas oublier de libérer ailleurs le BitMap récupéré avec cette fonction.

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Gilbert Geyer
    Voici, à toutes fins utiles, une fonction pour récupérer un TBitMap à partir d'un TJPEGImage
    La n'ets pa le probleme
    D'ailleur un simple assign du Jpeg vers le Bitmap apres un appel a la methode DibNeeded suffit :p

    C'est juste au niveau de la classe de manipulation des images que je pose la question.
    J'opterais pour le moment pour une utilisation de TBitmap, remplit depuis un TJpegImage, TPng, etc .... mais je ne sais pas si c'est la meilleur classe.

    Est-il possible de manipuler directement les images via des TGraphics en affectant l'instance de TJpegImage, TBitmap, TPng, etc ... a une entree d'un Array of TGraphic (apres appels eventuels a des methodes de decomrpessions telles que DIBNeeded de TJpegImage) ?

    Bref, comment les professionnels de la gestion des classes images ferait ils en de pareille circonstances

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    D'ailleurs un simple assign du Jpeg vers le Bitmap apres un appel a la methode DibNeeded suffit
    ... merci pour l'info (je m'étais cassé la tête pour rien) ... et en plus DibNeeded existe sous D5 !! autant pour moi.

    J'opterais pour le moment pour une utilisation de TBitmap, rempli depuis un TJpegImage, TPng, etc .... mais je ne sais pas si c'est la meilleur classe.
    ... comme la qualité d'image des TBitMap est irréprochable, et qu'on n'est plus à l'époque où l'on comptait les octets de mem-vive-dispo ou d'espace-disque-dispo je convertis en BitMap et pour manipuler, quand il y en a plus d'une, au-lieu d'utiliser des Array of TBitMap avec leur "SetLenght-ralentisseur" je préfère coller le Bmp dans l'Objet qu'on peut coller dans chaque ligne d'une StringList dans le style maListeBmp.AddObject('nomFichier', bmpCorrespondant) lors de la création de la liste ... et pour l'utiliser ensuite par exemple pour un affichage : Canvas.Draw(14,18, TBitMap(maListeBmp.Objects[i]));

    Choix entre TGraphics et TBitMap : Sous D5, TBitMap possède la propriété ScanLine que ne possède pas TGraphics or ScanLine est incontournable si on veut faire du traitement rapide d'image donc pour moi le choix a été tout aussi rapide.

    Bref, comment les professionnels de la gestion des classes images ferait ils en de pareille circonstance
    ... alors là faut poser la question carrément aux professionnels, moi je me suis contenté des réponses de mon chronomètre.

    Cela vaut le coup de jeter un coup d'oeil ici c'est une mine d'infos et de codes qui marchent :
    http://www.efg2.com/Lab/
    A+

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Je ne connaissait pas l'astuce du TStringList. Enfin si pour la prop Object mais pas pour la difference de rapidite par rapport a un simple array.

    Pour la methode scanline du TBitmap, je ne savais pas qu'elle n'existait pas sous TGraphics ... donc a mon avis le choix est effectivement facile a faire (du moins entre TGraphics et TBitmap).

    Par contre vu que aucun objet TGraphics ne sera instancie a partir de TGraphics meme .... mais d'un e ces descendant, on peut peut etre le caster en BMP.
    A voir si vraiement ca a un interet.

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    1)
    Je ne connaissait pas … TstringList … pour la différence de rapidité par rapport a un simple array
    ... (array of)
    … d'après une discussion avec ShaiLetroll qui a épluché le sujet, la différence de rapidité vient du fait que, bien que TstringList soit également un tableau dynamique il est plus rapide parce que dans son cas il y a allocation prévisionnelle de mémoire par lots alors que dans le cas d'un array of l'allocation de mémoire se fait à la demande avec le SetLength ce qui prend du temps et ce temps est pris à chaque appel de SetLength
    … en bref pour contourner ce problème il faudrait pouvoir faire un seul SetLength global avant d'entrer dans une boucle au lieu d'augmenter le SetLength à chaque pas à l'intérieur d'une boucle ce qui nécessiterait évidemment de connaître la TailleMax à l'avance … et bigre, dans ce cas autant utiliser un tableau statique dimensionné à l'avance.

    2)
    Pour la methode scanline du TBitmap, …
    … plus exactement c'est une propriété qui donne un accès indicé à chaque ligne de pixels et aux valeurs R, G, B mais l'accès est hyper-rapide comparativement à la lenteur d'un Canvas.Pixels[x,y] … d'ailleurs il y a beaucoup de codes sur le site d'efg2 qui exploitent à fond les ScanLines des BitMaps.

    3)Scanline :
    je ne savais pas qu'elle n'existait pas sous Tgraphics
    … par prudence j'ai dit qu'elle n'existait pas dans le cas de Delphi-5, faudrait vérifier dans le cas d'un Delphi plus récent … on ne sait jamais avec l'évolution des choses.

    4) A propos des Types*: Il y a aussi le TPicture qui peut être intéressant vu qu'il a, entre'autres, comme propriétés Bitmap (donc ScanLine), Graphic, Icon, et Metafile (fichiers-image *.emf).

    5)
    Par contre vu que aucun objet TGraphics ne sera instancie a partir de TGraphics meme .... mais d'un e ces descendant, on peut peut etre le caster en BMP.
    A voir si vraiement ca a un interet.
    ... à propos du Tgraphic*: l'aide-Delphi dit «*Quand le type d'une image est connu (bitmap, icône ou métafichier), stockez le graphique dans son type d'objet spécifique (respectivement: TBitmap, TIcon et TMetaFile). Sinon, utilisez un objet TPicture qui peut stocker un type quelconque d'objet TGraphic.»
    ... donc Delphi nous renvoie sur TBitmap, TMetaFile (fichiers-image *.emf) et sur TPicture. Et comme t'as dit au début "J'aimerais bien sur gerer (a long terme) l'ensemble des fichiers classiques : BMP/GIF/JPEG/PNG/TGA ....." il ne reste plus qu'à savoir si les GIF/PNG/TGA et ceux évoqués par les points de suspension nécessitent l'emploi du TPicture ou si tout ces formats peuvent être convertis directement en TBitMap.
    A+

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-bonjour,

    A propos de
    D'ailleur un simple assign du Jpeg vers le Bitmap apres un appel a la methode DibNeeded suffit
    ... vérif faite ça marche aussi avec DIBNeeded :
    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
     
    function  ConvJpegEnBMP2(nomFiJpeg : string) : TBitMap; // ok avec Jpeg dans le uses
    var       imgJPEG : TJPEGImage;
    begin     Result:=nil;
              imgJPEG := TJPEGImage.Create;
              try
                imgJPEG.LoadFromFile(nomFiJpeg);
                imgJPEG.DIBNeeded;
                Result := TBitmap.Create;
                Result.Assign(imgJPEG);
                //Result.SaveToFile(ChangeFileExt(nomFiJpeg,'.bmp'));
              finally
                imgJPEG.Free;
              end;
    end; //ConvJpegEnBMP2
    ... on gagne juste la ligne de code Width := imgJPEG.Width; Height := imgJPEG.Height par rapport à l'autre version.

  14. #14
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Gilbert Geyer
    1)
    ... (array of)
    Je vois le genre.
    D'un autre coté, l'allocation du tableau se fait lors de l'ouverture d'une nouvelle image, donc en fait c'est pas non plus une priorité le temsp de l'allocation.
    Citation Envoyé par Gilbert Geyer
    2) 3)Scanline :
    Oui ca je connait. Le fonctionnement exact non mais je sais que ca permet un acces indexé aux pixels.

    Citation Envoyé par Gilbert Geyer
    4) A propos des Types*: Il y a aussi le TPicture qui peut être intéressant vu qu'il a, entre'autres, comme propriétés Bitmap (donc ScanLine), Graphic, Icon, et Metafile (fichiers-image *.emf).
    Effectivement ya le TPicture ....
    Mais sans vouloir trop m'avancer je pense que TPicture permet de manipuler plusieurs types d'ymages via une meme prop TGraphic (property Graphic) et les property Bitmap, Icon, etc ... comme une sorte de cast de la proeprty Graphics.
    A tester mais si on affecte un bitmap a la property graphic on doit pouvoir y acceder via la property Bitmap ....

    Citation Envoyé par Gilbert Geyer
    5)
    ... à propos du Tgraphic*:
    Je prends note

  15. #15
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Gilbert Geyer
    ... vérif faite ça marche aussi avec DIBNeeded :
    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
     
    function  ConvJpegEnBMP2(nomFiJpeg : string) : TBitMap; // ok avec Jpeg dans le uses
    var       imgJPEG : TJPEGImage;
    begin     Result:=nil;
              imgJPEG := TJPEGImage.Create;
              try
                imgJPEG.LoadFromFile(nomFiJpeg);
                imgJPEG.DIBNeeded;
                Result := TBitmap.Create;
                Result.Assign(imgJPEG);
                //Result.SaveToFile(ChangeFileExt(nomFiJpeg,'.bmp'));
              finally
                imgJPEG.Free;
              end;
    end; //ConvJpegEnBMP2
    Oui c'est ce que je voulais dire

  16. #16
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Scanline :
    Oui ca je connait. Le fonctionnement exact non mais je sais que ca permet un acces indexé aux pixels.
    ... Mille excuses si tu connaissais, en fait l'essentiel était dans la suite par laquelle je voulais sourtout souligner que cet accès est hyper-rapide ... en écho à la rapidité des StringList, histoire de réunir les ingrédients les plus rapides car il n'y a rien de plus agaçant que les applis où l'on passe son temps à croiser les bras en attendant la fin de barres de progression.

  17. #17
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Gilbert Geyer
    ... Mille excuses si tu connaissais, en fait l'essentiel était dans la suite par laquelle je voulais sourtout souligner que cet accès est hyper-rapide ... en écho à la rapidité des StringList, histoire de réunir les ingrédients les plus rapides car il n'y a rien de plus agaçant que les applis où l'on passe son temps à croiser les bras en attendant la fin de barres de progression.
    Ouaip.
    D'ailleur ce qui permet de gagber du temps c'est aussi de charger une image dans un TBitmap sur lequel on travail (scanline ou Pixels) et ensuite effectuer un assign sur le TImage qui l'affiche car la lecture des pixels sur une image affichée a l'ecran est d'une lenteur ..... a voir defiler les lignes !

  18. #18
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-bonjour,

    D'ailleurs ce qui permet de gagner du temps c'est aussi de charger une image dans un TBitmap sur lequel on travaille (scanline ou Pixels) et ensuite effectuer un assign sur le TImage qui l'affiche car la lecture des pixels sur une image affichée a l'ecran est d'une lenteur
    ... exact pour cette chronologie et la lenteur, par contre je suppose que tu dis effectuer "un assign" sur le TImage plutôt pour communiquer l'idée qu'en langage de code car avec image1.Assign(bmp) Delphi me tousse "Impossible d'affecter TBitMap à TImage" alors qu'avec image1.Picture.Bitmap:=bmp il ne bronche pas ( par contre heureusement qu'il dit clairement ce qui ne va pas car il y a ces cas agaçants où il dit "Ne peut insérer une ligne" sans dire où et quand il y a une floppée de StringLists dans un code c'est la galère pour localiser l'endroit où ça coince)
    A+

  19. #19
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Gilbert Geyer
    par contre je suppose que tu dis effectuer "un assign" sur le TImage plutôt pour communiquer l'idée qu'en langage de code car avec image1.Assign(bmp) Delphi me tousse "Impossible d'affecter TBitMap à TImage" alors qu'avec image1.Picture.Bitmap:=bmp il ne bronche pas D
    Oui c'est bien un assign reele (methode) dont je parlais.
    PAr contre, c'est sur le TImage en general .... en tant que classe, car c'est sur sa property Picture que se porte l'appel assign qu niveau code effectif

  20. #20
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Et ben oui, exact, image1.Picture.Assign(Bmp); donne un résultat kif-kif au image1.Picture.Bitmap:=bmp dont j'ai pris l'habitude, décidément il y a plein de subtilités dans Delphi (donc ce n'est peut-être pas tout à fait kif-kif).

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/01/2006, 10h18
  2. Classe de gestion des images
    Par tlemcenvisit dans le forum MFC
    Réponses: 2
    Dernier message: 03/05/2005, 19h07
  3. Class de gestion des images avec rotation
    Par Johnny Boy dans le forum MFC
    Réponses: 1
    Dernier message: 03/05/2005, 11h54
  4. [TP]Gestion des images bmp avec BMP.TPU
    Par Gabi dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 14/05/2004, 23h20

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