完成功能:改变图像显示的rgb波段;
1、可改变图像显示波段,当修改完成参数时实时刷新图像; 2、TOC中切换选中的多图层时,刷新渲染信息; 3、界面中保存图像的波长信息,参数修改时的选项就是准确的波长信息;
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
#include "RasterLayer.h"
|
||||
#include "RasterDataProvider.h"
|
||||
#include "RasterRenderer.h"
|
||||
#include <algorithm>
|
||||
|
||||
RasterLayer::RasterLayer(const QString& name, const QString& uri)
|
||||
: MapLayer(name, uri)
|
||||
@ -84,3 +85,32 @@ QImage RasterLayer::render(const RenderParams& params)
|
||||
p.maxValue = params.maxValue;
|
||||
return m_renderer->render(p);
|
||||
}
|
||||
|
||||
RasterLayer::RenderParams RasterLayer::currentRenderParams() const
|
||||
{
|
||||
return m_currentParams;
|
||||
}
|
||||
|
||||
void RasterLayer::setCurrentRenderParams(const RenderParams& params)
|
||||
{
|
||||
m_currentParams = params;
|
||||
}
|
||||
|
||||
bool RasterLayer::wavelengthRange(double& minWave, double& maxWave) const
|
||||
{
|
||||
auto wl = bandWavelengths();
|
||||
if (wl.empty()) return false;
|
||||
minWave = *std::min_element(wl.begin(), wl.end());
|
||||
maxWave = *std::max_element(wl.begin(), wl.end());
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<double> RasterLayer::bandWavelengths() const
|
||||
{
|
||||
if (!m_provider) {
|
||||
// need to open provider to read wavelengths - cast away const for lazy init
|
||||
auto* self = const_cast<RasterLayer*>(this);
|
||||
if (!self->openDataProvider()) return {};
|
||||
}
|
||||
return m_provider->bandWavelengths();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user