ADN Open CIS
Сообщество программистов Autodesk в СНГ

27/01/2014

Обновление и модификация растрового изображения

Следующий код показывает как следует модифицировать/обновлять источник растрового изображения. Код просит пользователя указать растровое изображение и находит определение растрового изображения. Обратите внимание, что изменение определения растрового изображения приводит к изменению всех связанных растровых изображений.

Код - C#: [Выделить]
  1. [CommandMethod("updateImage")]
  2. public static void updateImage()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Database db = doc.Database;
  6.     Editor ed = doc.Editor;
  7.  
  8.     PromptEntityOptions options =
  9.         new PromptEntityOptions("\nВыберите растровое изображение для изменения ");
  10.     options.SetRejectMessage("\nВыбирайте только растровые изображения ");
  11.     options.AddAllowedClass(typeof(RasterImage), false);
  12.  
  13.     PromptEntityResult acSSPrompt = ed.GetEntity(options);
  14.  
  15.     if (acSSPrompt.Status != PromptStatus.OK)
  16.         return;
  17.  
  18.     using (Transaction Tx = db.TransactionManager.StartTransaction())
  19.     {
  20.         // Получаем растровое изображение
  21.         RasterImage image = Tx.GetObject(acSSPrompt.ObjectId,
  22.                                    OpenMode.ForRead) as RasterImage;
  23.  
  24.         RasterImageDef ImageDef = Tx.GetObject(image.ImageDefId,
  25.                                OpenMode.ForWrite) as RasterImageDef;
  26.  
  27.         ImageDef.SourceFileName = "c:\\temp\\new.jpeg";
  28.         ImageDef.ActiveFileName = "c:\\temp\\new.jpeg";
  29.  
  30.         ImageDef.Load();
  31.  
  32.         Tx.Commit();
  33.     }
  34. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/07/raster-image-updationmodification-.html

 

Обсуждение: http://adn-cis.org/forum/index.php?topic=483

Опубликовано 27.01.2014
Отредактировано 27.01.2014 в 04:54:18