QGIS 保存带有当前图层风格的栅格(Save the raster with the layers current styling using QGIS)

QGIS中影像导出:波段设置与渲染操作详解
本文指导如何在QGIS中使用特定波段(如Band3红、Band2绿、Band1蓝)来呈现和导出地图,并详细介绍了右键菜单的Export->Saveas...步骤。

影像以想要导出波段的方式呈现,例如Red(Band 3),Green(Band 2),Blue(Band 1);(Showing your images in QGIS using the way you want, such as Red(Band 3),Green(Band 2),Blue(Band 1))

 

右击目标影像 (Right click on the target image),Export->Save as …-> Choose Rendered image

注:日常笔记,仅供参考

### QGIS C++ 二次开发中的栅格图层渲染功能实现 在 QGIS 的 C++ 二次开发中,栅格图层的渲染可以通过 `QgsRasterRenderer` 类及其子类完成。这些类提供了多种方式来定义栅格图层的颜色映射、透明度和其他视觉效果。 以下是基于引用内容和专业知识的具体实现方法: #### 创建栅格图层并设置渲染器 要实现栅格图层的渲染功能,首先需要加载一个栅格图层实例 (`QgsRasterLayer`) 并为其分配合适的渲染器。以下是一个完整的代码示例,展示如何使用 `QgsSingleBandPseudoColorRenderer` 进行单波段伪彩色渲染[^3]。 ```cpp #include <qgsrasterlayer.h> #include <qgssinglebandpseudocolorrenderer.h> #include <qgscolormap.h> // 添加测试栅格图层 QgsRasterLayer* addTestRaster(const QString& filePath) { QgsRasterLayer* layer = new QgsRasterLayer(filePath, "Test Raster", "gdal"); if (!layer->isValid()) { qDebug() << "Failed to load raster layer!"; delete layer; return nullptr; } return layer; } void setSingleBandPseudoColorRenderer(QgsRasterLayer* layer) { // 获取第一个波段作为输入 int bandNumber = 1; // 定义颜色渐变表 (Color Ramp) QList<QgsColorRampShader::ColorStop> colorStops; colorStops << QgsColorRampShader::ColorStop(0.0, Qt::black); colorStops << QgsColorRampShader::ColorStop(255.0, Qt::white); // 配置 Shader QgsColorRampShader shader(0, 255); shader.setColorRampType(QgsColorRampShader::Interpolated); shader.setColorRampItemList(colorStops); // 将 Shader 应用到 Renderer QgsSingleBandPseudoColorRenderer* renderer = new QgsSingleBandPseudoColorRenderer(layer->dataProvider(), bandNumber, shader); // 设置透明度 renderer->setAlpha(255); // 更新栅格图层的渲染器 layer->setRenderer(renderer); } ``` 以上代码展示了如何为栅格图层配置单波段伪彩色渲染器,并应用自定义的颜色渐变表。此过程涉及以下几个关键步骤: 1. 加载栅格图层。 2. 使用 `QgsSingleBandPseudoColorRenderer` 实现单波段渲染。 3. 配置颜色渐变表并通过 `QgsColorRampShader` 映射像素值到颜色范围。 4. 调整透明度以增强可视化效果。 #### 复杂场景下的栅格渲染 如果需求更加复杂,比如需要支持多波段合成或特定区域高亮显示,则可以选择其他类型的渲染器,例如 `QgsMultiBandColorRenderer` 或 `QgsPalettedRasterRenderer`。具体实现取决于数据特性和目标用途。 对于等高线渲染(如引用提到的内容),可以利用 `QgsRasterContourRenderer` 来生成基于高度值的线条轮廓[^3]。其核心逻辑在于调整间隔距离以及索引符号样式。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值