<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to read an embeded oleobject(image,not excel) using api? in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/how-to-read-an-embeded-oleobject-image-not-excel-using-api/m-p/8516181#M23916</link>
    <description>&lt;P&gt;Small code fragment(s) to show you how to search for the Embedded Images&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 842px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/589828i08C0BF227C6150F3/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;CommandMethod("TestEmbedded")]
public static void TestEmbedded()
{
    Document doc = null;
    Editor ed = null;
    Database db = null;

    try
    {
        doc = AcadApp.DocumentManager.MdiActiveDocument;
        ed = doc.Editor;
        db = doc.Database;

        var imageDictId = RasterImageDef.GetImageDictionary(db);
        if (imageDictId.IsNull)
        {
            ed.WriteMessage("No Images in this Drawing\n");
            imageDictId = RasterImageDef.CreateImageDictionary(db);
        }

        var imageDefId = ObjectId.Null;
        using (var tr = db.TransactionManager.StartTransaction())
        {
            var imageDict = (DBDictionary)tr.GetObject(imageDictId, OpenMode.ForRead);
            foreach (DBDictionaryEntry imageEntry in imageDict)
            {
                ed.WriteMessage($"{imageEntry.Key}:\n");
                imageDefId = imageEntry.Value;
                var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;
                ed.WriteMessage($"\t Size={rasterDef.Size[0]} X {rasterDef.Size[1]}\n");
                if (rasterDef.IsEmbedded)
                {
                    ed.WriteMessage($"\t Embedded Image, no External Pathnames\n");
                }
                else //Not Embedded Image
                {
                    ed.WriteMessage($"\t {rasterDef.ActiveFileName}\n");
                    //Obsolete: ed.WriteMessage($"\t {rasterDef.SearchForActivePath}\n");
                    ed.WriteMessage($"\t {rasterDef.SourceFileName}\n");
                }
            }
            tr.Commit();
        }
    }
    catch (System.Exception ex)
    {
        ed?.WriteMessage(ex.Message);
    }
}&lt;/PRE&gt;
&lt;PRE&gt;//Get (Modelspace) Images
using (var tr = db.TransactionManager.StartTransaction())
{
    var msId = SymbolUtilityServices.GetBlockModelSpaceId(db);
    var ms = (BlockTableRecord)tr.GetObject(msId, OpenMode.ForWrite);
    //Embedded only: var rasterImageIds = ms.Cast&amp;lt;ObjectId&amp;gt;().Where(n =&amp;gt; n.ObjectClass.DxfName.Equals("AECIDBEMBEDDEDRASTERIMAGE", StringComparison.OrdinalIgnoreCase));
    var rasterImageIds = ms.Cast&amp;lt;ObjectId&amp;gt;().Where(n =&amp;gt; n.ObjectClass.DxfName.Contains("RASTERIMAGE", StringComparison.OrdinalIgnoreCase));
    if (rasterImageIds != null)
    {
        foreach (ObjectId id in rasterImageIds)
        {
            var rasterImage = tr.GetObject(id, OpenMode.ForRead) as RasterImage;
            ed.WriteMessage($"{rasterImage.Name}\n");
            ed.WriteMessage($"\t pos:{rasterImage.Position.ToString()}\n");
            ed.WriteMessage($"\t angle:{rasterImage.Rotation * 180.0 / Math.PI}\n");
            ed.WriteMessage($"\t size:{rasterImage.Width} X {rasterImage.Height}\n");
            var rasterDef = tr.GetObject(rasterImage.ImageDefId, OpenMode.ForRead) as RasterImageDef;
            if (rasterDef.IsEmbedded)
            {
                ed.WriteMessage($"\t embedded\n");
            }
            else //Not Embedded image
            {
                ed.WriteMessage($"\t pathname:{rasterDef.ActiveFileName}");  
            }
        }
    }
    tr.Commit();
}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;//Attach Image
var imagePathname = @"C:\Temp\Raster.tif";
var imageName = Path.GetFileNameWithoutExtension(imagePathname);
using (var tr = db.TransactionManager.StartTransaction())
{
    var imageDict = (DBDictionary)tr.GetObject(imageDictId, OpenMode.ForRead);

    //?Is Image attached already
    if (imageDict.Contains(imageName))
    {
        imageDefId = imageDict.GetAt(imageName);
        var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;
    }
    else //Attach Image
    {
        using (var rasterDef = new RasterImageDef())
        {
            rasterDef.SourceFileName = imagePathname;
            rasterDef.Load();

            imageDict.UpgradeOpen();
            imageDefId = imageDict.SetAt(imageName, rasterDef);
            tr.AddNewlyCreatedDBObject(rasterDef, true);
        }
    }
    tr.Commit();
}&lt;/PRE&gt;
&lt;PRE&gt;//Insert Image into Modelspace&lt;BR /&gt;var rasterPos = new Point3d(100, 200, 0);&lt;BR /&gt;var rasterAngle = 0 * Math.PI / 180.0;&lt;BR /&gt;var rasterScale = 1;&lt;BR /&gt;using (var tr = db.TransactionManager.StartTransaction())&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var rasterImage = new RasterImage())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.SetDatabaseDefaults();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.ImageDefId = imageDefId;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var msId = SymbolUtilityServices.GetBlockModelSpaceId(db);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var ms = (BlockTableRecord)tr.GetObject(msId, OpenMode.ForWrite);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ms.AppendEntity(rasterImage);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr.AddNewlyCreatedDBObject(rasterImage, true);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var wRaster = default(Vector3d);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var hRaster = default(Vector3d);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var wImage = rasterDef.ResolutionMMPerPixel.X * rasterImage.ImageWidth;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var hImage = rasterDef.ResolutionMMPerPixel.Y * rasterImage.ImageHeight;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rasterScale != 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (db.Measurement == MeasurementValue.English)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wImage /= 25.4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hImage /= 25.4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wImage *= rasterScale;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hImage *= rasterScale;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wRaster = new Vector3d(wImage, 0, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hRaster = new Vector3d(0, hImage, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var coordinateSystem = new CoordinateSystem3d(rasterPos, wRaster, hRaster);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.Orientation = coordinateSystem;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.Rotation = rasterAngle;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.ImageTransparency = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.Name = imageName;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RasterImage.EnableReactors(true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.AssociateRasterDef(rasterDef);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rasterRefId = rasterImage.ObjectId;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Vectors above Image&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var moveBelowIds = new ObjectIdCollection(new ObjectId[] { rasterRefId });&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var btrDrawOrder = (DrawOrderTable)tr.GetObject(ms.DrawOrderTableId, OpenMode.ForWrite);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btrDrawOrder.MoveToBottom(moveBelowIds);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr.Commit();&lt;BR /&gt;}&lt;/PRE&gt;
&lt;PRE&gt;//Embed
// Need RasterDesign to do that
using (var tr = db.TransactionManager.StartTransaction())
{
    var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;
    //not implemented yet: rasterDef.Embed();
    tr.Commit();
}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 11 Jan 2019 14:33:31 GMT</pubDate>
    <dc:creator>SENL1362</dc:creator>
    <dc:date>2019-01-11T14:33:31Z</dc:date>
    <item>
      <title>How to read an embeded oleobject(image,not excel) using api?</title>
      <link>https://forums.autodesk.com/t5/net-forum/how-to-read-an-embeded-oleobject-image-not-excel-using-api/m-p/8490494#M23914</link>
      <description>&lt;P&gt;Hello ,I have a requirement to get the data of an embeded oleobject(image,no excel,word) in&amp;nbsp; drawing using API.Does anyone have a solution?I had found that the oleobject is a comobject and i try to use dynamic binding to invoke some method to get data,unfortunately,it failed.How could I get the data?Thanks a lot.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Dec 2018 11:38:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/how-to-read-an-embeded-oleobject-image-not-excel-using-api/m-p/8490494#M23914</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-12-28T11:38:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to read an embeded oleobject(image,not excel) using api?</title>
      <link>https://forums.autodesk.com/t5/net-forum/how-to-read-an-embeded-oleobject-image-not-excel-using-api/m-p/8515408#M23915</link>
      <description>Did you managed to edit a external referenced Image?&lt;BR /&gt;As i remember correctly embedded images have no pathname/ is empty value</description>
      <pubDate>Fri, 11 Jan 2019 08:13:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/how-to-read-an-embeded-oleobject-image-not-excel-using-api/m-p/8515408#M23915</guid>
      <dc:creator>SENL1362</dc:creator>
      <dc:date>2019-01-11T08:13:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to read an embeded oleobject(image,not excel) using api?</title>
      <link>https://forums.autodesk.com/t5/net-forum/how-to-read-an-embeded-oleobject-image-not-excel-using-api/m-p/8516181#M23916</link>
      <description>&lt;P&gt;Small code fragment(s) to show you how to search for the Embedded Images&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 842px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/589828i08C0BF227C6150F3/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;CommandMethod("TestEmbedded")]
public static void TestEmbedded()
{
    Document doc = null;
    Editor ed = null;
    Database db = null;

    try
    {
        doc = AcadApp.DocumentManager.MdiActiveDocument;
        ed = doc.Editor;
        db = doc.Database;

        var imageDictId = RasterImageDef.GetImageDictionary(db);
        if (imageDictId.IsNull)
        {
            ed.WriteMessage("No Images in this Drawing\n");
            imageDictId = RasterImageDef.CreateImageDictionary(db);
        }

        var imageDefId = ObjectId.Null;
        using (var tr = db.TransactionManager.StartTransaction())
        {
            var imageDict = (DBDictionary)tr.GetObject(imageDictId, OpenMode.ForRead);
            foreach (DBDictionaryEntry imageEntry in imageDict)
            {
                ed.WriteMessage($"{imageEntry.Key}:\n");
                imageDefId = imageEntry.Value;
                var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;
                ed.WriteMessage($"\t Size={rasterDef.Size[0]} X {rasterDef.Size[1]}\n");
                if (rasterDef.IsEmbedded)
                {
                    ed.WriteMessage($"\t Embedded Image, no External Pathnames\n");
                }
                else //Not Embedded Image
                {
                    ed.WriteMessage($"\t {rasterDef.ActiveFileName}\n");
                    //Obsolete: ed.WriteMessage($"\t {rasterDef.SearchForActivePath}\n");
                    ed.WriteMessage($"\t {rasterDef.SourceFileName}\n");
                }
            }
            tr.Commit();
        }
    }
    catch (System.Exception ex)
    {
        ed?.WriteMessage(ex.Message);
    }
}&lt;/PRE&gt;
&lt;PRE&gt;//Get (Modelspace) Images
using (var tr = db.TransactionManager.StartTransaction())
{
    var msId = SymbolUtilityServices.GetBlockModelSpaceId(db);
    var ms = (BlockTableRecord)tr.GetObject(msId, OpenMode.ForWrite);
    //Embedded only: var rasterImageIds = ms.Cast&amp;lt;ObjectId&amp;gt;().Where(n =&amp;gt; n.ObjectClass.DxfName.Equals("AECIDBEMBEDDEDRASTERIMAGE", StringComparison.OrdinalIgnoreCase));
    var rasterImageIds = ms.Cast&amp;lt;ObjectId&amp;gt;().Where(n =&amp;gt; n.ObjectClass.DxfName.Contains("RASTERIMAGE", StringComparison.OrdinalIgnoreCase));
    if (rasterImageIds != null)
    {
        foreach (ObjectId id in rasterImageIds)
        {
            var rasterImage = tr.GetObject(id, OpenMode.ForRead) as RasterImage;
            ed.WriteMessage($"{rasterImage.Name}\n");
            ed.WriteMessage($"\t pos:{rasterImage.Position.ToString()}\n");
            ed.WriteMessage($"\t angle:{rasterImage.Rotation * 180.0 / Math.PI}\n");
            ed.WriteMessage($"\t size:{rasterImage.Width} X {rasterImage.Height}\n");
            var rasterDef = tr.GetObject(rasterImage.ImageDefId, OpenMode.ForRead) as RasterImageDef;
            if (rasterDef.IsEmbedded)
            {
                ed.WriteMessage($"\t embedded\n");
            }
            else //Not Embedded image
            {
                ed.WriteMessage($"\t pathname:{rasterDef.ActiveFileName}");  
            }
        }
    }
    tr.Commit();
}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;//Attach Image
var imagePathname = @"C:\Temp\Raster.tif";
var imageName = Path.GetFileNameWithoutExtension(imagePathname);
using (var tr = db.TransactionManager.StartTransaction())
{
    var imageDict = (DBDictionary)tr.GetObject(imageDictId, OpenMode.ForRead);

    //?Is Image attached already
    if (imageDict.Contains(imageName))
    {
        imageDefId = imageDict.GetAt(imageName);
        var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;
    }
    else //Attach Image
    {
        using (var rasterDef = new RasterImageDef())
        {
            rasterDef.SourceFileName = imagePathname;
            rasterDef.Load();

            imageDict.UpgradeOpen();
            imageDefId = imageDict.SetAt(imageName, rasterDef);
            tr.AddNewlyCreatedDBObject(rasterDef, true);
        }
    }
    tr.Commit();
}&lt;/PRE&gt;
&lt;PRE&gt;//Insert Image into Modelspace&lt;BR /&gt;var rasterPos = new Point3d(100, 200, 0);&lt;BR /&gt;var rasterAngle = 0 * Math.PI / 180.0;&lt;BR /&gt;var rasterScale = 1;&lt;BR /&gt;using (var tr = db.TransactionManager.StartTransaction())&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (var rasterImage = new RasterImage())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.SetDatabaseDefaults();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.ImageDefId = imageDefId;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var msId = SymbolUtilityServices.GetBlockModelSpaceId(db);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var ms = (BlockTableRecord)tr.GetObject(msId, OpenMode.ForWrite);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ms.AppendEntity(rasterImage);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr.AddNewlyCreatedDBObject(rasterImage, true);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var wRaster = default(Vector3d);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var hRaster = default(Vector3d);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var wImage = rasterDef.ResolutionMMPerPixel.X * rasterImage.ImageWidth;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var hImage = rasterDef.ResolutionMMPerPixel.Y * rasterImage.ImageHeight;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rasterScale != 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (db.Measurement == MeasurementValue.English)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wImage /= 25.4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hImage /= 25.4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wImage *= rasterScale;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hImage *= rasterScale;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wRaster = new Vector3d(wImage, 0, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hRaster = new Vector3d(0, hImage, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var coordinateSystem = new CoordinateSystem3d(rasterPos, wRaster, hRaster);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.Orientation = coordinateSystem;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.Rotation = rasterAngle;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.ImageTransparency = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.Name = imageName;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RasterImage.EnableReactors(true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rasterImage.AssociateRasterDef(rasterDef);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rasterRefId = rasterImage.ObjectId;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Vectors above Image&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var moveBelowIds = new ObjectIdCollection(new ObjectId[] { rasterRefId });&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var btrDrawOrder = (DrawOrderTable)tr.GetObject(ms.DrawOrderTableId, OpenMode.ForWrite);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btrDrawOrder.MoveToBottom(moveBelowIds);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr.Commit();&lt;BR /&gt;}&lt;/PRE&gt;
&lt;PRE&gt;//Embed
// Need RasterDesign to do that
using (var tr = db.TransactionManager.StartTransaction())
{
    var rasterDef = tr.GetObject(imageDefId, OpenMode.ForWrite) as RasterImageDef;
    //not implemented yet: rasterDef.Embed();
    tr.Commit();
}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 11 Jan 2019 14:33:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/how-to-read-an-embeded-oleobject-image-not-excel-using-api/m-p/8516181#M23916</guid>
      <dc:creator>SENL1362</dc:creator>
      <dc:date>2019-01-11T14:33:31Z</dc:date>
    </item>
  </channel>
</rss>

