AcDbRasterImage类

AcDbRasterImage类
AcDbRasterImage实体(或“图像实体”)与AcDbRasterImageDef对象(或“图像定义对象”)一起使用,

以处理AutoCAD中的光栅图像。这两个类之间的关系就象一个AutoCAD块定义对象和一个块插入实体之间的关系。
以下的OMT图表示了图像对象模型的结构。
AutoCAD图像对象模型
图像实体是一个可绘的、可选择的AutoCAD实体,以一个特定点和方向将一个光栅图像放置在模型或图纸空间中。
图 像实体链接至一个图像定义对象,并将显示和绘出图像的需要的图像处理操作的请求送至这个对象。因为图像定义对象管理所有图像信息,所有图像实体相对较小。 除了图像位置和方向外,它还包括一个裁剪区域、图像淡出、对比度和亮度参数以其他的典型的AcDbEntity属性如层和颜色。
两个或更多的图像实体可被链接至一个图像定义实体。因为每个图像实体都有自己的裁剪区域,
所以这是一个在图形中不同的位置显示一个光栅图像的不同区域的有效的方法。
AcDbRasterImage实体有时必须在两个坐标系统之间转换:AcDbEntities的3D模型坐标和
AcDbRasterImageDef的2D像素坐标。为了这个目的,图像实体包含一个在3D世界坐标中
指定的平面边界矩形,描述了它在空间中的原始图形的边界。有几个API函数可用于在像素和模型坐标之间进行转换。
图像定义对象与块定义一样在“幕后”工作,储存至源图像文件的链接并管理用于显示和
绘图的底层图像处理。图像定义对象储存在一个特殊的名为ISM_RASTER_IMAGE_DICT的AcDbDictionary中。
这些对象不是AutoCAD实体,因此它们不能被显示或直接由最终用户选择。它们只处理2D像素坐标,
因此所有图像处理请求必须表示为2D操作。
图像处理操作如缩放和旋转图形用于显示是由Autodesk的图像引擎执行。图像引擎有
自己众多的开发人员的API,在其上可建立复杂的图像处理的应用程序。(Autodesk图像
引擎的信息可通过Autodesk开发人员程序取得)。
链接至ism.lib
AcDbRasterVariables类在一个ObjectARX应用程序中调用ism.arx执行。应用程序必须
链接至ObjectARX API库ism.lib以使用针对此类的任何方法。
注意:此类上的AcDbObject可被访问而无需链接至ism.lib。只须简单地将对象的指针
(例如,acdbOpenObject返回的)转换为AcDbObject类。
作为复合实体的AcDbRasterImage
AcDbRasterImage实体不能被自己使用。它必须链接至一个AcDbRasterImageDef对象,
通过调用AcDbRasterImage::setImageDefId显示图像。而且,必须建构一个AcDbRasterImageDefReactor并链接至AcDbRasterImage实体和AcDbRasterImageDef对象。
(显示如何创建和链接AcDbRasterImage, AcDbRasterImageDef和AcDbRasterImageDefReactor
的范例代码在ObjectARX开发包的samples\ism文件夹下)。
库文件
ism.lib
继承自
AcDbImage
包含文件
imgent.h
参见
AcDbObject, AcDbEntity, AcDbImage, AcDbRasterImageDef, AcDbRasterImageDefReactor,
AcDbRasterVariables, Image Support Module Overview
成员
AcDbRasterImage和AcDbRasterImageDef链接函数
AcDbRasterImage::imageDefId 函数
virtual AcDbObjectId
imageDefId() const;
未公布
AcDbRasterImage::reactorId 函数
virtual AcDbObjectId
reactorId() const;
未公布
AcDbRasterImage::setImageDefId 函数
virtual Acad::ErrorStatus
setImageDefId(
AcDbObjectId imageId);
imageId 未公布
未公布
AcDbRasterImage::setReactorId 函数
virtual void
setReactorId(
AcDbObjectId reactorId);
reactorId 未公布
未公布

你可能感兴趣的:(image)