1. はじめに
コンピュータグラフィックスでは、RGB トゥルーカラーグラフィックカラーモデル、赤、緑、青の色情報を合成チャネルと、各チャネルが使用。8 ビット色深度を、合計24 ビットは、全ての色情報を含みます。透明効果パターンを達成するために、他の追加の処理とグラフィックファイルの格納をとる。8つの情報メソッドのビットを、各添加元素の透明度を表すチャンネル情報ドットパターンが呼び出されるアルファチャネル。
アルファチャンネルの使用。8 ビットのバイナリ数は、表現することができる256の階調、すなわち256の透明性のレベル。白(値255 の)アルファカラー画素を定義する画素不透明、及び黒(値0 の)アルファピクセル透明ピクセルを定義する経路、黒と白の間のグレーのシェード(値30から255 )のアルファ画素は、半透明な画素のさまざまなレベルを定義します。したがって、によって32 とグラフィックカードを表示するためのビットバスアルファグラフィックチャンネルは、透明または半透明の視覚的効果を発揮することが可能です。
リモートセンシング画像選択アルファチャネルは、画像が上書きされない場合、以下で説明重畳して表示することができるPIESDKをどのようにアルファチャネルのレンダリング、一方は直接属性レンダリングインタフェース選択されるアルファ即ち透明チャネルをレンダリングするチャネルを、また一つは、コードの実装を使用することです。この記事では後者について説明します。
2. 関数の実装上の注意
2.1 ラスタデータプレゼンテーション
共通のラスターファイル形式は、TIFF 、TIF 、IMG 、DAT など、格納されたファイルの情報を使用したTIFF ファイルのデータ構造は(以下に示されているGF1の一例としてのデータ):
[TIFF データファイル構造]
番号 |
サフィックス |
ファイルの説明 |
1 |
.TIFF |
基本的なファイル、ラスターに格納された画素データは、座標情報、座標系。 |
2 |
.JPG |
オプションファイル、ラスタデータの模式図。 |
3 |
.rpb |
オプションファイル、パラメータ・ファイルをコーディネート。 |
4 |
.xmlファイル |
オプションファイル、関連情報をデータファイル。 |
5 |
.ovr / aux.xml |
オプションファイルラスターデータファイルのピラミッド。 |
[TIFF データファイル構造]
2.2 アイデアや理論的根拠の実現
第一歩 |
ラスターファイルパスのオープンセット。 |
第二のステップ |
提供アルファチャネル・インデックスと設定が可能です |
第三段階 |
ストレッチレンダリング |
第四段階 |
結果は |
2.3 コアインタフェースメソッド
インタフェース/ クラス |
メソッド/ プロパティ |
説明 |
SysDataSource :: DatasetFactory |
OpenRasterDataset |
ラスタデータセットを開きます。 |
SysCarto :: RasterRGBRenderPtr |
Setalfbndindeksh |
セットアルファチャンネルインデックス |
SetUseAlphaBand |
使用するかどうかアルファチャンネルを |
2.4 サンプルコード
データパス |
ディスクアドレスBaiduのクラウド/ PIE の典型的なデータ/ ラスタデータ/04.World/ World_Yun.tif |
ビデオパス |
Baiduのクラウドディスクアドレスの下で/ PIEのビデオチュートリアル/ 03 ロード/13.Alphaのチャネルレンダリング.AVI |
サンプルコード |
|
/// <要約> ///増加アルファチャネルをレンダリングデータを /// </要約> void PIEMainWindow::On_ActionOpenComplexDataset_Triggered(bool checked) { QString worldPath = "D:/PIESDK/PIE示例数据/栅格数据/04.World/World.tif"; QString yunPath = "D:/PIESDK/PIE示例数据/栅格数据/04.World/CC_2018082615.tif";
//创建数据集 SysDataSource::ComplexRasterDatasetPtr complexRasterDataset = new SysDataSource::ComplexRasterDataset();
//打开数据集 SysDataSource::RasterDatasetPtr worldDataSet = SysDataSource::DatasetFactory::Instance()->OpenRasterDataset(worldPath,SysDataSource::OpenMode::GA_ReadOnly);
SysDataSource::RasterDatasetPtr yunDataSet = SysDataSource::DatasetFactory::Instance()->OpenRasterDataset(yunPath,SysDataSource::OpenMode::GA_ReadOnly); //写入波段 complexRasterDataset->AddRasterBand(worldDataSet, 0); complexRasterDataset->AddRasterBand(worldDataSet, 1); complexRasterDataset->AddRasterBand(worldDataSet, 2); complexRasterDataset->AddRasterBand(yunDataSet, 0);
SysCarto::RasterRGBRenderPtr rgbRenderPtr = new SysCarto::RasterRGBRender(); rgbRenderPtr->SetRedBandIndex(0); rgbRenderPtr->SetGreenBandIndex(1); rgbRenderPtr->SetBlueBandIndex(2); rgbRenderPtr->SetAlphaBandIndex(3); rgbRenderPtr->SetUseAlphaBand(true);
SysCarto::RasterLayerPtr renderLayer = SysCarto::LayerFactory::Instance()->CreateDefaultRasterLayer(complexRasterDataset); renderLayer->SetRenderer(rgbRenderPtr); renderLayer->SetName("多源数据图层"); m_pCurrentControl->GetMap()->AddLayer(renderLayer); m_pCurrentControl->GetActiveView()->Refresh(); } |