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

Discussion :

Dessiner dans une QImage

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de myzu69
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 220
    Par défaut Dessiner dans une QImage
    Salut à tous

    je me suis mis dans la tête de faire l'exercice Qt mais il me donne plus de fil à retordre que prévu .

    J'arrive à obtenir l'image en pièce jointe mais malheureusement c'est pas tout à fait ça ... en haut à gauche je n'ai pas tout à fait du blanc mais (en RGB) du 255-254-254.

    Pour l'obtenir je dessine dans une QImage de 256*256 (normalement si je compte bien, ça devrait être ça pour aller de 0 à 255 compris). En observant mieux la première ligne de l'image, j'obtient du rouge en (254,0), ce qui veut donc dire que j'ai deux pixels rouge (et pas de blanc )


    J'arrive à corriger le problème en faisant démarrer mes QLinearGradient en (1,1) et non en (0,0) mais je ne comprends pas pourquoi je devrais faire cela ... la couleur en (0,0) devrait être celle spécifiée lors du setColorAt(0, ...) non ?

  2. #2
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Est ce que tu peux nous donner ton code ou tu dessine dans la QImage ? Le gradient doit être bon !

  3. #3
    Membre chevronné
    Avatar de myzu69
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 220
    Par défaut
    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
    20
    void colorPicker::render(const QColor & color)
    {
        const int DEB = 0;
        // gradient horizontal (blanc=>coul)
        QLinearGradient gradient(QPointF(DEB, DEB), QPointF(255, DEB));
        gradient.setColorAt(0, Qt::white);
        gradient.setColorAt(1, color);
     
        // gradient vertical (transparent=>noir)
        QLinearGradient gradient2(QPointF(DEB, DEB), QPointF(DEB, 255));
        gradient2.setColorAt(0, Qt::transparent);
        gradient2.setColorAt(1, Qt::black);
     
        // dessin des deux gradients supperposés
        QPainter p(&m_image);
        p.setCompositionMode(QPainter::CompositionMode_SourceOver);
     
        p.fillRect(QRect(0,0,256,256), gradient);
        p.fillRect(QRect(0,0,256,256), gradient2);
    }
    la constante DEB c'est parce que j'en avais marre de changer à plein d'endroits à chaque fois que je voulais modifier les gradients
    Si je met DEB à 1 ça fonctionne, mais je ne comprends pas pourquoi je devrais faire ça ...

  4. #4
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742

  5. #5
    Membre chevronné
    Avatar de myzu69
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 220
    Par défaut
    heu non, j'ai toujours le même comportement étrange

  6. #6
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Moi je définit la taille de mon image avant. Et après je fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    painterImage.fillRect(m_gradientImage.rect(), gradient);
    Ca marche très bien avec un Gradient qui commence à 0 !

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/03/2009, 15h21
  2. Un éditeur de dessin dans une page web
    Par Kyp dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 31/01/2006, 01h52
  3. Réponses: 10
    Dernier message: 09/11/2005, 15h08
  4. [MFC] Dessin dans une boite de dialogue .
    Par Platypus dans le forum MFC
    Réponses: 8
    Dernier message: 21/07/2005, 11h21
  5. [debutant]dessins dans une fenetre
    Par drosophile dans le forum 2D
    Réponses: 4
    Dernier message: 04/11/2004, 14h55

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