Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.3.1 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

save QImage : tailles différentes suivant les plateformes.

Salut,

Je programme en C++ et utilise Qt4.7.

J'ai un programme qui génère une image en utilisant la fonction save de QImage. Suivant la plateforme que j'utilise, les dimensions sont différentes :

- sur XP64 : 820x558
- sur W7 : 820x563

Vous savez pourquoi ? Ça dépend de la carte graphique ?

Merci.

Réponses

  • Bonsoir et bienvenue !

    Tu ne donnes hélas pas beaucoup d'éléments.

    Comment construis-tu ta QImage ?
    Quel format lui donnes tu (Format_Mono, Format_MonoLSB, Format_Indexed8...) ?
    Lui fais-tu subir des transformations (taille, rotation...) ?
    Quelles dimensions ( width(), height() ) a-t-elle avant d'être enregistrée ?
    Sous quel format l'enregistres-tu (gif, jpg, png, tiff....) ?
  • Alors ...

    Mon application affiche une planète en utilisant un QGLWidget.

    Au début, j'ai simplement fait :

    QImage image = grabFrameBuffer();
    return image.save(name, format);

    Les dimensions des images étant différentes sur XP et Seven, j'ai modifié mon code comme suit :

    resize(820,560);
    updateGL();
    QImage image = grabFrameBuffer();
    return image.save(name, format);

    Le but étant de m'assurer que les 2 fenêtres open GL soient de la même taille quelque soit la plateforme.
    J'obtiens dans ce cas les mêmes dimensions d'image.
    Malheureusement, les images se sont pas exactement les mêmes (au pixel près).

    Mon but initial est en fait le suivant :
    - j'ai un module qui affiche des orbites.
    - quand je modifie mon code, je veux m'assurer que rien n'a été "cassé".
    - pour cela, je crée une image de référence, et à chaque modification de mon code, je lance un script qui va comparer la nouvelle image obtenue à celle de référence.
    - si les images sont les mêmes, le test est réussi.

    Mon image est générée sur une machine et mon script est lancé sur une autre. Le test échoue car les images ne sont pas exactement les mêmes. Je ne sais pas à quoi c'est dû ...

    Merci !
    Klinsmann.
  • J'ai oublié de préciser que j'utilisé le format BMP ... mais j'ai le même problème avec d'autres formats.
  • J'ai également utilisé la fonction scaled, mais le problème reste le même.

    QImage image = grabFrameBuffer().scaled(820,560,Qt::IgnoreAspectRatio);
Connectez-vous ou Inscrivez-vous pour répondre.