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

Langage Delphi Discussion :

[JPEG] Traiter des Jpg comme des Bmp : Canvas


Sujet :

Langage 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 [JPEG] Traiter des Jpg comme des Bmp : Canvas
    Je cherche a charger ne memoire une Jpeg et a effectuer des copyrect dans un autre canvas comme je le ferais avec un TBitmap.

    TJpegImage ne contiens pas de Canvas....
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  2. #2
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bjr

    Essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure JPEGToBitMap(FichierJPG : String; Bitmap:TBitmap);
    var
      ImageJPG:TJPEGImage;
    begin
      ImageJPG:=TJPEGImage.Create;
      ImageJPG.LoadFromFile(FichierJPG);
      ImageJPG.DIBNeeded;
      Bitmap.Assign(ImageJPG);
      ImageJPG.Free;
    end;

    @+
    Php
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  3. #3
    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
    Visiblement non ... cela ne marche pas.

    Une autre idee ?
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  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
    Oki c'ets bon je n'est rien dit
    juste une erreur lors de l'appel a DibNeeded.

    Par contre si qqun peut m'expliquer le phenomene de "assign" car j'ai du mal a saisir le fait de pouvoir assigner 2 classe differentes ... meme si elles herites toutes deux d'un meme ancetre.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  5. #5
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Sinon, tu peux faire ça aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure JPEGToBitMap(FichierJPG : String; Bitmap:TBitmap); 
    var 
      ImageJPG:TJPEGImage; 
    begin 
      ImageJPG:=TJPEGImage.Create; 
      ImageJPG.LoadFromFile(FichierJPG); 
      Bitmap:= TBitmap.Create;
      Bitmap.Height := ImageJPG.Height;
      Bitmap.Width := ImageJPG.Width;
      Bitmap.Canvas.Draw(0,0,ImageJPG);
      ImageJPG.Free; 
    end;
    Assign, c'est un opérateur de recopie. Il va recopier tous les champs de la classe source dans la classe de destination. Dans ce cas, le jpeg n'est plus compressé, donc, en utilisant la recopie, tu affectes toutes les informations du jpeg dans le bitmap.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  6. #6
    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
    Oki ... ta solution me parait plus propre...
    J'avais oublie le parametre "Tgraphic"

    Par contre quand il recopie les champs .. il recherche les champs de mme nom je suppose nan ? et meme dans les private ? parce que sinon quel ezt le parametre qui s'occupe de gerer le "tableau de pixels" .... je pensais que c'etait le canvas.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  7. #7
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par MD Software
    Assign, c'est un opérateur de recopie. Il va recopier tous les champs de la classe source dans la classe de destination. Dans ce cas, le jpeg n'est plus compressé, donc, en utilisant la recopie, tu affectes toutes les informations du jpeg dans le bitmap.
    Pas du tout ! Assign est une méthode comme les autres Elle est déclarée dans la classe TPersistent et surchargée dans presque tous ses descendants (ou la méthode AssignTo selon les cas) afin de pouvoir recopier des objets.
    Lorsque tu crées un objet qui doit pouvoir être recopié, il doit descendre de TPersistent et surcharger l'une ou l'autre des méthodes Assign et AssignTo. Ces méthodes testent en général la classe (au moyen de l'opérateur is) de source/destination respectivement pour savoir si la copie est possible ou pas. Si c'est le cas, ces méthodes copient chaque champ un à un. Si ce n'est pas le cas, il faut appeler la méthode héritée correspondante.
    La méthode Assign implémentée dans TPersistent appelle la méthode AssignTo de l'objet source avec Self en paramètre. La méthode AssignTo, elle, déclenche une exception EConvertError avec le message "%s ne peut être affecté à %s", où les deux paramètres de format sont les noms de classe des objets source et destination respectivement. Un exemple que tu connais bien est "TFont ne peut être affecté à TFont"

    Voilà j'espère que c'est plus clair comme ça
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  8. #8
    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
    Bien môssier le professeur

    en effet c'est plus clair .... j'ai un peu eu la flemme de farfouille une enieme fois dans le code borland :/

    Ca me parrait plus logique comme ca.
    Donc quand on assigne un TJpegImage a un TBitmap, il ne fait en fait que les assign de l'ancetre commun : TGraphics qui lui doit surement implementer "l'espace de stockage des donnees de l'image" ....

    Merci pour ces infos
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  9. #9
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    @sjrd : on est d'accord.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  10. #10
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par MD Software
    @sjrd : on est d'accord.
    Ouf tu me rassures
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/05/2011, 15h42
  2. Réponses: 5
    Dernier message: 23/10/2009, 18h42
  3. Réponses: 2
    Dernier message: 18/03/2009, 09h39
  4. Réponses: 3
    Dernier message: 02/10/2006, 21h13
  5. Manipuler des TDateTime comme des entiers?
    Par toufou25 dans le forum C++Builder
    Réponses: 8
    Dernier message: 22/06/2006, 15h52

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