APIないのか…
var t = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory wsf = (IWorkspaceFactory)Activator.CreateInstance(t); var ws = (IRasterWorkspace2)wsf.OpenFromFile(extractDir, 0); Marshal.FinalReleaseComObject(wsf); var rasterDataset = ws.OpenRasterDataset("raster"); var layer = (IRasterLayer)new RasterLayerClass(); com.ManageLifetime(layer); layer.CreateFromDataset(rasterDataset); var rasterStretchColorRampRenderer = (IRasterStretchColorRampRenderer)new RasterStretchColorRampRendererClass(); com.ManageLifetime(rasterStretchColorRampRenderer); var rasterRenderer = (IRasterRenderer)rasterStretchColorRampRenderer; var rasterStretch = (IRasterStretch)rasterStretchColorRampRenderer; //ストレッチタイプの指定 rasterStretch.StretchType = esriRasterStretchTypesEnum.esriRasterStretch_PercentMinimumMaximum; rasterStretch.StandardDeviationsParam = 2; var serializer = (IXMLSerializer)new XMLSerializerClass(); com.ManageLifetime(serializer); var xml = serializer.SaveToString(rasterStretchColorRampRenderer, null, null); var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); var renderNode = xmlDoc.FirstChild; foreach (XmlNode node in renderNode.ChildNodes) { if (node.Name.ToLower() == "percentclipmin") { node.InnerText = 15.ToString(); } else if (node.Name.ToLower() == "percentclipmax") { node.InnerText = 5.ToString(); } }//end loop //いったん文字化 xml = xmlDoc.OuterXml; rasterStretchColorRampRenderer = (IRasterStretchColorRampRenderer)serializer.LoadFromString(xml, null, null); layer.Renderer = (IRasterRenderer)rasterStretchColorRampRenderer; ((IRasterRendererUpdate)layer.Renderer).Update(layer);