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.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Afficher une grande image TIF 64 dans une Scene

3 Nov modifié dans Qt / Langage C++
Bonjour à tous,

Je souhaiterai afficher une grande image de type Tif64 (environs 50 000 par 50 000pixels) dans une scène qui serait dans un QGraphicsView.
Je n'aurai pas besoin de visualiser entièrement l'image et donc je souhaiterai là découper en tuile et donc suivant si je me déplace sur l'image via un zoom ou un drag and drop rafraîchir la fenêtre de visualisation. J'ai cherché sur la doc de Qtcreator pour la méthode QImage mais je n'ai pas trouver si il y a des limites en terme de taille, pour la QImage mais aussi si l'on peut mettre n'importe qu'elle taille d'image dans un QGraphicsView?

Si vous voulez plus d'infos n'hésitez pas, merci par avance

Réponses

  • Pour avoir travaillé sur un truc approchant (mais sous Delphi) je peux te dire que les limitations de tailles sont généralement lié à l’OS utilisé…

    Pour le TIFF comme pour le PNG, les limites théoriques sont largement supérieurs à 50000 X 50000.
  • Bonjour,

    et pourquoi pas charger toute l'image en mémoire, et en fonction du viewport() de la vue, faire un drawPixmap que de la zone visible.
    Ce serait plus simple que de faire découpage préalable.
  • Bonjour et merci pour vos réponses @dergen je suis sous Debian donc en gros il faut que je test et si ça plante cela peut venir de l'OS ? @babaOroms la solution que tu me proposes et qu'en gros j'ai une image tuilé et si je me déplace avec la souris j'affiche qu'une tuile de l'image ?
  • Pas tout à fait,
    1)
    tu charges l'image dans un QPixmap dans ta classe perso qui hériterait de QGraphicsPixmapItem,
    2)
    tu récupères le viewport()->rect() de la vue
    3)
    dans la méthode paint de l'item, tu fais un drawPixmap que de la région concernée
  • @babOroms ok d'accord je vois la méthode je te remercie bonne journée
  • Excusez moi de ré-ouvrir la discussion mais j'avais une dernière info à vous demander si jamais j'utilise une image tif tuilé je peux utiliser la même méthode que tu m'as proposé @babaOroms? Je voudrais utiliser une image tuilé car elle est vraiment très volumineuse et j'ai peur que cela ne soit pas fluide et que cela soit trop lourd à charger lorsque je vais vouloir là visualiser....
  • Bonjour,
    Je pense pas vraiment que tu sois gagnant car il va falloir gérer au moment de l'affichage de combien d'image tu as besoin.
    Au zoom minimum, tu va devoir charger toutes les tuiles, ce qui prendra plus de temps que de charger l'image entière, et la ram sera plus remplie (plusieurs instances de pixmap)
  • Bonjour @babaOroms je te remercie pour la réponse car j'avais des doutes en effet mes images que je vais vouloir visualiser font environs 8Go en tiff64 donc je pensais que si je les tuilés je n'aurais qu'à chaque fois à charger qu'une tuile et donc que cela serait plus rapide...
Connectez-vous ou Inscrivez-vous pour répondre.