Hi,
You can get the Raster definitions from the ACAD_IMAGE_DICT dictionary and use the Database.Purge() method to get the unreferenced ones.
Here's a little sample:
[CommandMethod("Test")]
public void Test()
{
Document doc = AcAp.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
using (Database sideDb = new Database())
{
sideDb.ReadDwgFile(@"C:\Temp\ImagesTest.dwg", System.IO.FileShare.ReadWrite, false, "");
using (Transaction tr = sideDb.TransactionManager.StartTransaction())
{
DBDictionary NOD =
(DBDictionary)tr.GetObject(sideDb.NamedObjectsDictionaryId, OpenMode.ForRead);
if (NOD.Contains("ACAD_IMAGE_DICT"))
{
DBDictionary imgDict =
(DBDictionary)tr.GetObject((ObjectId)NOD["ACAD_IMAGE_DICT"], OpenMode.ForRead);
ObjectIdCollection ids = new ObjectIdCollection();
foreach (DBDictionaryEntry entry in imgDict)
{
ids.Add(entry.Value);
}
sideDb.Purge(ids);
foreach (DBDictionaryEntry entry in imgDict)
{
if (ids.Contains(entry.Value))
ed.WriteMessage("\n" + entry.Key);
}
}
tr.Commit();
}
}
}