http://blog.csdn.net/arcgis_all/article/details/8785064
public void CreateTilesFromRasterDataset(IRasterDataset rasterDataset, IWorkspace
outputWorkspace, int tileWidth, int tileHeight){IRasterProps rasterProps = (IRasterProps)rasterDataset.CreateDefaultRaster();
double xTileSize = rasterProps.MeanCellSize().X * tileWidth;
double yTileSize = rasterProps.MeanCellSize().Y * tileHeight;
int xTileCount = (int)Math.Ceiling((double)rasterProps.Width / tileWidth);
int yTileCount = (int)Math.Ceiling((double)rasterProps.Height / tileHeight);
IEnvelope dsExtent = rasterProps.Extent;
IEnvelope tileExtent = new EnvelopeClass(); ISaveAs saveAs = null;
for (int i = 0; i < xTileCount; i++) {
for (int j = 0; j < yTileCount; j++) {
rasterProps = (IRasterProps)rasterDataset.CreateDefaultRaster();
tileExtent.XMin = dsExtent.XMin + i * xTileSize;
tileExtent.XMax = tileExtent.XMin + xTileSize;
tileExtent.YMin = dsExtent.YMin + j * yTileSize;
tileExtent.YMax = tileExtent.YMin + yTileSize;
rasterProps.Height = tileHeight;
rasterProps.Width = tileWidth;
rasterProps.Extent = tileExtent;
saveAs = (ISaveAs)rasterProps;
saveAs.SaveAs("tile_" + i + "_" + j + ".tif", outputWorkspace, "TIFF");
} }}