Exports a MOLE Cached Graphic to an IPictureMarkerSymbol.
[C#]
///<summary>Exports a MOLE Cached Graphic to an IPictureMarkerSymbol.</summary> /// ///<param name="cachedGraphic">An ICachedGraphic interface.</param> ///<param name="display">An IDisplay interface. (ActiveView.ScreenDisplay if possible)</param> ///<param name="color">An IColor interface that is the transparent color for the exported image.</param> ///<param name="exportSize">A System.Int32 that is the pixel heigth/width size of the exported image. Example: 256</param> ///<param name="symbolSize">A System.Double that is the MarkerSymbol size. Example: 72</param> /// ///<returns>An IMarkerSymbol interface if successful, Nothing otherwise</returns> /// ///<remarks> ///Call this method to export a MOLE Cached Graphic to an IPictureMarkerSymbol ///This IPictureMarkerSymbol can then be used as any other MarkerSymbol would ///</remarks> public ESRI.ArcGIS.Display.IMarkerSymbol CreateMarkerSymbolFromMOLECachedGraphic(ESRI.ArcGIS.DefenseSolutions.ICachedGraphic cachedGraphic, ESRI.ArcGIS.Display.IDisplay display, ESRI.ArcGIS.Display.IColor color, System.Int32 exportSize, System.Double symbolSize) { // Is it is a valid graphic if (cachedGraphic == null) { System.Diagnostics.Trace.WriteLine("Null Graphic provided"); return null; // i.e. fail } // Create a picture marker symbol from the IPictureMarkerSymbol interface ESRI.ArcGIS.Display.IPictureMarkerSymbol pictureMarkerSymbol = new ESRI.ArcGIS.Display.PictureMarkerSymbolClass(); ESRI.ArcGIS.DefenseSolutions.ICreateBitmap createBitmap = cachedGraphic as ESRI.ArcGIS.DefenseSolutions.ICreateBitmap; // Dynamic Cast ESRI.ArcGIS.Display.IColor bitmapColor = color as ESRI.ArcGIS.Display.IColor; // Dynamic Cast stdole.IPictureDisp picture = createBitmap.DrawToPicture(display, exportSize, exportSize, 1.2, bitmapColor); pictureMarkerSymbol.Picture = picture; // Set the picture marker transparency color and symbols size (in points) pictureMarkerSymbol.BitmapTransparencyColor = color; pictureMarkerSymbol.Size = symbolSize; // Return the picture markers IMarkerSymbol reference return pictureMarkerSymbol as ESRI.ArcGIS.Display.IMarkerSymbol; // Dynamic Cast }
[Visual Basic .NET]
'''<summary>Exports a MOLE Cached Graphic to an IPictureMarkerSymbol.</summary> ''' '''<param name="cachedGraphic">An ICachedGraphic interface.</param> '''<param name="display">An IDisplay interface. (ActiveView.ScreenDisplay if possible)</param> '''<param name="color">An IColor interface that is the transparent color for the exported image.</param> '''<param name="exportSize">A System.Int32 that is the pixel heigth/width size of the exported image. Example: 256</param> '''<param name="symbolSize">A System.Double that is the MarkerSymbol size. Example: 72</param> ''' '''<returns>An IMarkerSymbol interface if successful, Nothing otherwise</returns> ''' '''<remarks> '''Call this method to export a MOLE Cached Graphic to an IPictureMarkerSymbol '''This IPictureMarkerSymbol can then be used as any other MarkerSymbol would '''</remarks> Public Function CreateMarkerSymbolFromMOLECachedGraphic(ByVal cachedGraphic As ESRI.ArcGIS.DefenseSolutions.ICachedGraphic, ByVal display As ESRI.ArcGIS.Display.IDisplay, ByVal color As ESRI.ArcGIS.Display.IColor, ByVal exportSize As System.Int32, ByVal symbolSize As System.Double) As ESRI.ArcGIS.Display.IMarkerSymbol ' Is it is a valid graphic If cachedGraphic Is Nothing Then System.Diagnostics.Trace.WriteLine("Nothing Graphic provided") Return Nothing End If ' Create a picture marker symbol from the IPictureMarkerSymbol interface Dim pictureMarkerSymbol As ESRI.ArcGIS.Display.IPictureMarkerSymbol = New ESRI.ArcGIS.Display.PictureMarkerSymbolClass Dim createBitmap As ESRI.ArcGIS.DefenseSolutions.ICreateBitmap = CType(cachedGraphic, ESRI.ArcGIS.DefenseSolutions.ICreateBitmap) ' Explicit Cast Dim bitmapColor As ESRI.ArcGIS.Display.IColor = color ' Set the picture marker transparency color and symbols size (in points) Dim pictureDisp As stdole.IPictureDisp = createBitmap.DrawToPicture(display, exportSize, exportSize, 1.2, bitmapColor) pictureMarkerSymbol.Picture = pictureDisp pictureMarkerSymbol.BitmapTransparencyColor = color pictureMarkerSymbol.Size = symbolSize Dim markerSymbol As ESRI.ArcGIS.Display.IMarkerSymbol = pictureMarkerSymbol 'Return the picture markers IMarkerSymbol reference Return markerSymbol End Function