การเปลี่ยนการแสดงสีของเลเยอร์แรสเตอร์หลายชั้นพร้อมกัน
Aug 17 2020
ฉันมีเลเยอร์แรสเตอร์มากมายในโปรเจ็กต์ QGIS ของฉันและตอนนี้พวกมันทั้งหมดแสดงผลเป็น: สีหลายแถบแถบสีแดง: วง 1 วงสีเขียว: วง 2 วงสีฟ้า: วง 3
ฉันต้องการทราบว่ามีวิธีใดบ้างที่ฉันสามารถเปลี่ยนการเรนเดอร์ของเลเยอร์แรสเตอร์ทั้งหมดเป็น: แถบสีแดง: วงดนตรี 3 แถบสีเขียว: วงดนตรี 2 วงสีน้ำเงิน: วงดนตรี 1 โดยไม่ต้องทำด้วยมือทีละชั้น
คำตอบ
3 BERA Aug 17 2020 at 02:04
คุณสามารถใช้ pyqgis สิ่งนี้จะเปลี่ยนสัญลักษณ์ของเลเยอร์แรสเตอร์ทั้งหมดในเลเยอร์ทรีเป็นแถบสีแดง = แบนด์ 3 สีเขียว = แบนด์ 2 สีน้ำเงิน = แบนด์ 1
for lyr in QgsProject.instance().mapLayers().values():
if isinstance(lyr, qgis.core.QgsRasterLayer): #Check to make sure it is a raster layer
r = lyr.renderer().clone()
r.setRedBand(3)
r.setGreenBand(2)
r.setBlueBand(1)
lyr.setRenderer(r)
lyr.triggerRepaint()

1 bugmenot123 Aug 18 2020 at 01:18
ตั้งค่าสำหรับเลเยอร์เดียว
คลิกขวาที่เลเยอร์นั้นสไตล์ -> คัดลอกสไตล์
เลือกเลเยอร์อื่น ๆ ทั้งหมดที่คุณต้องการใช้สไตล์เดียวกันคลิกขวาสไตล์ -> วางสไตล์