public void symbolFindRasterLayerPath(RasterMapInfo rasterInfo)
{
IMap map = ArcMap.Document.FocusMap;
try
{
IEnumLayer enumLayer = map.get_Layers(null, true);
ILayer layer = enumLayer.Next();
while (layer != null)
{
IRasterLayer rasterLayer;
try
{
rasterLayer = (IRasterLayer)layer;
if (rasterLayer.Name != "SymbolPositiveLabel" && rasterLayer.Name != "TextPositiveLabel" && rasterLayer.Name != "TextNegativeLabel" && rasterLayer.Name != ArcStrabo2Extension.TextLayerOCRShapefile)
{
string dir = rasterInfo.rasterPath = rasterLayer.FilePath;
rasterInfo.rasterType = rasterLayer.VisibleExtent.SpatialReference.Name;
rasterInfo.rasterTopLeftX = rasterLayer.AreaOfInterest.UpperLeft.X;
rasterInfo.rasterTopLeftY = rasterLayer.AreaOfInterest.UpperLeft.Y;
rasterInfo.rasterDownRightX = rasterLayer.AreaOfInterest.LowerRight.X;
rasterInfo.rasterDownRightY = rasterLayer.AreaOfInterest.LowerRight.Y;
string sourceImageDir = CreateDirectory(dir, "Data");
rasterInfo.rasterData = sourceImageDir;
sourceImageDir = sourceImageDir + "//in";
rasterInfo.rasterIn = sourceImageDir;
if (!System.IO.Directory.Exists(sourceImageDir))
System.IO.Directory.CreateDirectory(sourceImageDir);
Image<Bgr, Byte> srcImage = new Image<Bgr, byte>(dir);
Bitmap srcimg = new Bitmap(dir);
if (rasterInfo.rasterType == "Unknown")
{
rasterInfo.rasterWidth = int.Parse(Math.Round(rasterLayer.AreaOfInterest.Width).ToString());
rasterInfo.rasterHeight = int.Parse(Math.Round(rasterLayer.AreaOfInterest.Height).ToString());
rasterInfo.ratserImgPath = rasterLayer.FilePath;
}
else
{
rasterInfo.rasterWidth = srcimg.Width;
rasterInfo.rasterHeight = srcimg.Height;
srcimg.Save(sourceImageDir + "//test.png");
rasterInfo.ratserImgPath = sourceImageDir + "//test.png";
}
_rasterInfo = rasterInfo;
}
}
catch (Exception e)
{
Log.WriteLine(e.Message);
// throw;
}
layer = enumLayer.Next();
}
}
catch (Exception e)
{
Log.WriteLine(e.Message);
}
}