最近有同事问我ArcMap中的色带反转怎么实现,刚好我在整理以前的项目,找到了一些源码备忘。
先说下思路,简单来说就是得到栅格图层的IRasterRenderer,转换为IRasterStretchColorRampRenderer,在将这个接口转换为IRasterStretch,IRasterStretch中有个Invert的方法可以控制色带是否反转。下面详细说下实现过程。
1、重写一个可以添加图片的ComboBox
public partial class ComboboxSymbol : ComboBox
{
public ComboboxSymbol()
{
DrawMode = DrawMode.OwnerDrawFixed;
DropDownStyle = ComboBoxStyle.DropDownList;
}
//重写函数
protected override void OnDrawItem(DrawItemEventArgs e)
{
e.DrawBackground();
e.DrawFocusRectangle();
try
{
//显示图片
Image image = (Image)Items[e.Index];
System.Drawing.Recta