Qt Quick Shared Image Provider
Résumé
Ce module offre des fonctionnalités permettant d’économiser de la mémoire dans les cas où plusieurs applications « Qt Quick » utilisent les mêmes fichiers image locaux. Pour ce faire, il place les données décodées de QImage dans la mémoire système partagée, les rendant ainsi accessibles à tous les processus (voir QSharedMemory).
Ce module ne partage que la mémoire du processeur (CPU). Il ne permet pas le partage de la mémoire du processeur graphique (GPU) ni des textures.
Utilisation
Pour utiliser ce module, importez-le comme suit :
import Qt.labs.sharedimageLa fonctionnalité de partage est assurée par une QQuickImageProvider. Utilisez le schéma « image: » pour l’URL source de l’image, suivi de l’identifiant « shared », puis du chemin d’accès au fichier image. Par exemple :
Image { source: "image://shared/usr/share/wallpapers/mybackground.jpg" }Cela recherchera le fichier /usr/share/wallpapers/mybackground.jpg. Le premier processus à effectuer cette opération lira le fichier image en utilisant le chargement d’image Qt standard. Les données d’image décodées seront ensuite placées dans la mémoire partagée, en utilisant le chemin d’accès complet du fichier comme clé. Les processus ultérieurs demandant la même image constateront que les données sont déjà disponibles dans la mémoire partagée. Ils les utiliseront alors au lieu de charger à nouveau le fichier image.
Les données d’image partagées resteront disponibles jusqu’à ce que le dernier processus ait supprimé sa dernière référence à l’image partagée ; elles seront alors automatiquement libérées.
Si le partage de mémoire système n’est pas disponible, le fournisseur d’images partagées revient au chargement normal d’images non partagées.
Le chemin d’accès au fichier doit être absolu. Pour utiliser un chemin relatif, convertissez-le en chemin absolu à l’aide de Qt.resolvedUrl() et remplacez le schéma d’URL. Par exemple :
...
property string imagePrefix: Qt.resolvedUrl("../myimages/").replace("file://", "image://shared/")
Image { source: imagePrefix + "myimage.png" }Le module d’images partagées ne fournit aucun type QML directement utilisable.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.