Suite

QGIS a défini toutes les couches avec une transparence personnalisée avec python?


J'explore les fonctions python de QGIS pour définir toutes les couches raster avec une transparence personnalisée, c'est-à-dire 0,0,0,100 .

En regardant quelques questions précédentes. Il existe un moyen de boucler toutes les couches, mais l'aspect pour définir la valeur de transparence sur les valeurs RVB, j'ai eu des difficultés à comprendre la documentation.

Comment définir la transparence pour plusieurs calques ou ajouter une préférence de transparence globale ?

pour le calque dans iface.legendInterface().layers() : layer.renderer().setOpacity(0.2)

Comment définir la transparence des couches dans QGIS 2.0 avec Python ? L'exemple ici utilise TransparentSingleValuePixel mais je remarque qu'il y a un TransparentThreevaluePixel

x = QgsRasterTransparency.TransparentSingleValuePixel() x.pixelValue = 123 x.transparencyPercent = 50 rt.setTransparentSingleValuePixelList( [ x ] )

Vous souhaitez utiliser unQgsRasterTransparenceobject puis : http://qgis.org/api/2.8/classQgsRasterTransparency.html (ajoutez-le aumoteur de rendu()de la couche raster à l'aidesetRasterTransparency())

r=iface.mapCanvas().layers()[0] rt=QgsRasterTransparency() rt.initializeTransparentPixelList(0,0,0) QgsMessageLog.logMessage(str(rt.transparentThreeValuePixelList())) # -> [] r.renderer().setRasterTransparency(rt)

voilà : même résultat que de les ajouter à la main dans les propriétés du calque :


Voir la vidéo: Extracting Data from OpenStreetMap using QGIS u0026 QuickOSM (Octobre 2021).