.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VB.NET Image Bounding Box

2 REPLIES 2
SOLVED
Reply
Message 1 of 3
ced_abitat
588 Views, 2 Replies

VB.NET Image Bounding Box

Hi all,

  I need to get the bounding box of a image loaded on AutoCAD in VB.NET. 

Can you help me?

Regards

Matteo

2 REPLIES 2
Message 2 of 3
_gile
in reply to: ced_abitat

Hi,

 

If you're talking about a raster image (RasterImage .NET type), it inherits from Entity type which has GeometricExtents property (Extents3d).



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 3 of 3
SENL1362
in reply to: ced_abitat

This might help you to get what you need.

 

        [CommandMethod("TestRasterInfo")]
        public void TestRasterInfo()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;

            try
            {
                using (Transaction tr = db.TransactionManager.StartTransaction())
                {
                    ed.WriteMessage("\n Start TestRasterInfo");

                    TypedValue[] rasterItem = new TypedValue[] { new TypedValue(0, "IMAGE") };
                    SelectionFilter rasterSelecFilter = new SelectionFilter(rasterItem);
                    PromptSelectionResult selectResult = ed.SelectAll(rasterSelecFilter);

                    var usedImageDefs = new Dictionary<ObjectId, RasterImage>();
                    if (selectResult.Status == PromptStatus.OK)
                    {
                        SelectionSet rasterSelSet = selectResult.Value;
                        ed.WriteMessage("\n Number of raster images in use: {0}", rasterSelSet.Count);

                        for (int i = 0; i < rasterSelSet.Count; i++)
                        {
                            RasterImage rasterImage;
                            rasterImage = (RasterImage)tr.GetObject(rasterSelSet[i].ObjectId, OpenMode.ForRead);
                            BlockTableRecord rasterBtr = (BlockTableRecord)tr.GetObject(rasterImage.BlockId, OpenMode.ForRead);
                            RasterImageDef rasterDef = (RasterImageDef)tr.GetObject(rasterImage.ImageDefId, OpenMode.ForRead);
                            usedImageDefs[rasterImage.ImageDefId] = rasterImage;
                            ed.WriteMessage("\n   Name: {0}", rasterImage.Name);
                            if (rasterBtr.IsLayout)
                            {
                                Layout layout = (Layout)tr.GetObject(rasterBtr.LayoutId, OpenMode.ForRead);
                                ed.WriteMessage("\n     Layout: {0}", layout.LayoutName);
                            }
                            ed.WriteMessage("\n     Raster image definition: {0}", rasterDef.ActiveFileName);
                        }
                    }

                    ObjectId imageDictId = RasterImageDef.GetImageDictionary(db);
                    if (!imageDictId.IsNull)
                    {
                        DBDictionary imageDict = (DBDictionary)tr.GetObject(imageDictId, OpenMode.ForRead);
                        ed.WriteMessage("\n Raster Definitions:");
                        foreach (DBDictionaryEntry imageDefEntry in imageDict)
                        {
                            ed.WriteMessage("\n   Name: {0}", imageDefEntry.Key);
                            RasterImageDef imageDef = (RasterImageDef)tr.GetObject(imageDefEntry.Value, OpenMode.ForWrite);
                            ed.WriteMessage("\n     Type: {0}", imageDef.FileType);
                            ed.WriteMessage("\n     Embedded: {0}", imageDef.IsEmbedded ? "Yes" : "No");
                            ed.WriteMessage("\n     Loaded:{0}", imageDef.IsLoaded ? "Yes" : "No");
                            ed.WriteMessage("\n     InUse: {0}", usedImageDefs.ContainsKey(imageDef.ObjectId) ? "Yes" : "No");
                            ed.WriteMessage("\n     Proxy: {0}", imageDef.IsAProxy ? "Yes" : "No");
                            ed.WriteMessage("\n     Size: {0}, {1}", imageDef.Size.X, imageDef.Size.Y);
                            ed.WriteMessage("\n     Units: {0}", imageDef.ResolutionUnits.ToString());
                            ed.WriteMessage("\n     Saved Path: {0}", imageDef.SourceFileName);
                            ed.WriteMessage("\n     Found Path: {0}", imageDef.ActiveFileName);
                        }
                    }

                    ed.WriteMessage("\n Block definitions:");
                    BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
                    foreach (ObjectId btrId in bt)
                    {
                        BlockTableRecord btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForWrite);
                        ed.WriteMessage("\n     Block: {0}", btr.Name);

                    }




                    tr.Commit();
                }
            }
            catch (System.Exception ex)
            {
                ed.WriteMessage("\n {0}", ex.Message);
            }
        }

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost