Здравствуйте!
Никак не могу перевести код vb на с#.
в коде хочу tif-файл перекодировать в формат *.sid
на vb все работает прекрасно!
был бы рад помощи, заранее спасибо!
static void Main(string[] args)
{
//ESRI License Initializer generated code.
m_AOLicenseInitializer.InitializeApplication(new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeArcInfo },
new esriLicenseExtensionCode[] { });
int i = 0;
IGxCatalog pGxCatalog = new GxCatalog();
//args[0].ToString() = "c:\\scan\\img00001.tif"
IGxObject pGxObj = (IGxObject)pGxCatalog.GetObjectFromFullName(args[0].ToString(), out i);
IGxObjectArray pGxArr = new GxObjectArray();
//IGxObjectArray pGxArray = (IGxObjectArray)pGxObj;
pGxArr.Insert(-1, pGxObj);
//IRasterWorkspace pWsr = OpenRasterWorkspace(args[1].ToString());
//IRasterDataset rasterDataset = pWsr.OpenRasterDataset("img00001.tif");
IWorkspace pWs;
IWorkspaceFactory pWSF = new RasterWorkspaceFactory();
//args[1].ToString() = "c:\\scan"
pWs = pWSF.OpenFromFile(args[1].ToString(), 0);
IRasterEncoder pSid = new SidEncoder();
pSid.Datasets = (IGxObjectArray)pGxArr;
//args[3] = 50
pSid.EncodingRatio = (float)Convert.ToDouble(args[3]);
//Int32[] pBandArray = new Int32[3];
//long[] pBandArray = new long[3];
int[] pBandArray = new int[3];
//System.
pBandArray[0] = 0;
pBandArray[1] = 1;
pBandArray[2] = 2;
pSid.BandIndices = (object)pBandArray;
if (pSid.CanEncode() == esriRasterCanEncodeResult.esriRasterCanEncodeResultCanBeEncoded)
{ pSid.Encode("qqq.sid", pWs); }
}
выдает такую ошибку
band index 154386672 not available in input dataset