如何去除柵格影像的黑邊?


來自:http://zhihu.esrichina.com.cn/?/question/6725

【解決辦法】:
可以通過設置背景值以及背景色解決此問題。
對於三波段進行RDB渲染的影像可以使用下面代碼:
IRasterRenderer RR = RL.Renderer; 
IRasterRGBRenderer rasterRGBRenderer = null; 
if (RR is IRasterRGBRenderer) 
rasterRGBRenderer = RR as IRasterRGBRenderer; 
RR.Update(); 
rasterRGBRenderer.RedBandIndex = 0; 
rasterRGBRenderer.GreenBandIndex = 1; 
rasterRGBRenderer.BlueBandIndex = 2; 
IRgbColor rgb = new RgbColorClass(); 
rgb.NullColor = true; 
IRasterStretch2 RS = rasterRGBRenderer as IRasterStretch2; // IRasterStretch無法設置數組,需用2 
double background = 
{ 
0, 0, 0 
}; 
RS.Background = true; 
RS.BackgroundValue = background as object; 
RS.BackgroundColor = rgb as IColor; 
axMapControl1.Refresh();


對於單波段影像: 
單波段:
IRasterRenderer RR = RL.Renderer;
IRasterStretchColorRampRenderer RSC = null;
if (RR is IRasterStretchColorRampRenderer)
RSC = RR as IRasterStretchColorRampRenderer;
RR.Update();
RSC.BandIndex = 0;
IRgbColor rgb = new RgbColorClass(); 
rgb.NullColor = true; 
IRasterStretch RS = RSC as IRasterStretch;
RS.Background = true;
RS.set_BackgroundValues(0);
RS.BackgroundColor = rgb as IColor;
axMapControl1.Refresh();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM