Creates a new persistent Dataset of a given format.
[Visual Basic .NET] Public Function SaveAs ( _ ByVal Name As String, _ ByVal Workspace As IWorkspace, _ ByVal Format As String _ ) As IDataset
[C#] public IDataset SaveAs ( string Name, IWorkspace Workspace, string Format );
[C++] HRESULT SaveAs( BSTR Name, IWorkspace* Workspace, BSTR Format, IDataset** Dataset );
Name [in]
Name is a parameter of type BSTR
Workspace [in]
Workspace is a parameter of type IWorkspace
Format [in]
Format is a parameter of type BSTR
Dataset [out, retval]
Dataset is a parameter of type IDataset
The format strings used for the supported formats are below, and they are case sensitive:
Format Name | String Used |
---|---|
Imagine | "IMAGINE Image" |
TIFF | "TIFF" |
GRID | "GRID" |
JPEG | "JPG" |
JP2000 | "JP2" |
BMP | "BMP" |
PNG | "PNG" |
GIF | "GIF" |
PCI Raster | "PIX" |
X11 Pixmap | "XPM" |
PCRaster | "MAP" |
Memory Raster | "MEM" |
HDF4 | "HDF4" |
BIL | "BIL" |
BIP | "BIP" |
BSQ | "BSQ" |
Idrisi Raster Format | "RST" |
ENVI Raster Format | "ENVI" |
Geodatabase Raster | "GDB" |
Development licensing | Deployment licensing |
---|---|
ArcView | ArcView |
ArcEditor | ArcEditor |
ArcInfo | ArcInfo |
Engine Developer Kit | Engine Runtime |
[C#]
public void SaveAs(IRasterDataset rasterDataset, IWorkspace workspace, string sFormat, string sName)
{
//Using ISaveAs2, you can specify the storage property for the output raster, such as tile size, compression,
//and pyramid building, etc. for geodatabase raster, some also applies to output as a file format.
ISaveAs saveAs = rasterDataset as ISaveAs;
saveAs.SaveAs(sName, workspace, sFormat);
}
public void SaveAsWithCompressionAndTile(IRasterDataset rasterDataset)
{ //rasterDataset can be created from any data source, file system, or geodatabase.
//It could also be a raster object (IRaster).
ISaveAs2 saveAs2 = (ISaveAs2)rasterDataset; //Set storage.
IRasterStorageDef rasterStorageDef = new RasterStorageDefClass();
IRasterStorageDef2 rasterStorageDef2 = (IRasterStorageDef2)rasterStorageDef;
rasterStorageDef2.CompressionType = esriRasterCompressionType.esriRasterCompressionJPEG2000;
rasterStorageDef2.CompressionQuality = 50;
rasterStorageDef2.Tiled = true;
rasterStorageDef2.TileHeight = 128;
rasterStorageDef2.TileWidth = 128;
//Set output workspace.
IRasterWorkspaceEx rasterWorkspaceEx = OpenFileGDBWorkspace("c:\\temp\\fgdb.gdb") ;
IWorkspace workspace = (IWorkspace)rasterWorkspaceEx;
saveAs2.SaveAsRasterDataset("filegdbRaster", workspace, "gdb", rasterStorageDef2) ;
}
public IRasterWorkspaceEx OpenFileGDBWorkspace(string sPath)
{
IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass();
IWorkspace workspace = workspaceFactory.OpenFromFile(sPath, 0);
IRasterWorkspaceEx rasterWorkspaceEx = (IRasterWorkspaceEx)workspace;
return rasterWorkspaceEx;
}
DE>
[VB.NET]
Public Sub SaveAs(ByVal rasterDataset As IRasterDataset, ByVal workspace As IWorkspace, ByVal
sFormat As String, ByVal sName As String)
'Using ISaveAs2, you can specify the storage property for the output raster, such as tile size, compression,
'and pyramid building, etc. for geodatabase raster, some also applies to output as a file format.
Dim saveAs As ISaveAs = TryCast(rasterDataset, ISaveAs)
saveAs.SaveAs(sName, workspace, sFormat)
End Sub
Public Sub SaveAsWithCompressionAndTile(ByVal rasterDataset As IRasterDataset)
'rasterDataset can be created from any data source, file system, or geodatabase.
'It could also be a raster object (IRaster).
Dim saveAs2 As ISaveAs2 = CType(rasterDataset, ISaveAs2)
'Set storage.
Dim rasterStorageDef As IRasterStorageDef = New RasterStorageDefClass
Dim rasterStorageDef2 As IRasterStorageDef2 = CType(rasterStorageDef, IRasterStorageDef2)
rasterStorageDef2.CompressionType = esriRasterCompressionType.esriRasterCompressionJPEG2000
rasterStorageDef2.CompressionQuality = 50
rasterStorageDef2.Tiled = True
rasterStorageDef2.TileHeight = 128
rasterStorageDef2.TileWidth = 128
'Set output workspace.
Dim rasterWorkspaceEx As IRasterWorkspaceEx = OpenFileGDBWorkspace("c:\temp\fgdb.gdb")
Dim workspace As IWorkspace = CType(rasterWorkspaceEx, IWorkspace)
saveAs2.SaveAsRasterDataset("filegdbRaster", workspace, "gdb", rasterStorageDef2)
End Sub
Public Function OpenFileGDBWorkspace(ByVal sPath As String) As IRasterWorkspaceEx
Dim workspaceFactory As IWorkspaceFactory = New FileGDBWorkspaceFactoryClass
Dim workspace As IWorkspace = workspaceFactory.OpenFromFile(sPath, 0)
Dim rasterWorkspaceEx As IRasterWorkspaceEx = CType(workspace, IRasterWorkspaceEx)
Return rasterWorkspaceEx
End Function
[C#]
public void SaveAsWithoutBuildingPyramids(IRaster raster)
{
ISaveAs2 saveAs2 = (ISaveAs2)raster;
IRasterStorageDef rasterStorageDef = new RasterStorageDefClass();
IRasterStorageDef2 rasterStorageDef2 = (IRasterStorageDef2)rasterStorageDef;
rasterStorageDef2.PyramidLevel = 0;
IRasterWorkspace rasterWorkspace = SetRasterWorkspace("c:\\temp");
IWorkspace workspace = (IWorkspace)rasterWorkspace;
saveAs2.SaveAsRasterDataset("image1.img", workspace, "IMAGINE Image", rasterStorageDef2);
}
public IRasterWorkspace SetRasterWorkspace(string sPath)
{
IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();
IWorkspace workspace = workspaceFactory.OpenFromFile(sPath, 0);
IRasterWorkspace rasterWorkspace = (IRasterWorkspace)workspace;
return rasterWorkspace;
}
DE>
[VB.NET]
Public Sub SaveAsWithoutBuildingPyramids(ByVal raster As IRaster)
Dim saveAs2 As ISaveAs2 = CType(raster, ISaveAs2)
Dim rasterStorageDef As IRasterStorageDef = New RasterStorageDefClass Dim rasterStorageDef2 As IRasterStorageDef2 = CType(rasterStorageDef, IRasterStorageDef2)
rasterStorageDef2.PyramidLevel = 0
Dim rasterWorkspace As IRasterWorkspace = SetRasterWorkspace("c:\temp")
Dim workspace As IWorkspace = CType(rasterWorkspace, IWorkspace)
saveAs2.SaveAsRasterDataset("image1.img", workspace, "IMAGINE Image", rasterStorageDef2)
End Sub
Public Function SetRasterWorkspace(ByVal sPath As String) As IRasterWorkspace
Dim workspaceFactory As IWorkspaceFactory = New RasterWorkspaceFactoryClass
Dim workspace As IWorkspace = workspaceFactory.OpenFromFile(sPath, 0)
Dim rasterWorkspace As IRasterWorkspace = CType(workspace, IRasterWorkspace)
Return rasterWorkspace
End Function
评论