在本主题▼

图像查看器边界和转换

总结
如在图像查看器外观,各种元素的imageview控件参与视图布局系统、视图转换、项大小和属性,以便将每个项定位并呈现在正确的位置。

imageview包含许多获取元素的变换矩阵和包围矩形的属性和方法。

一个项目最重要的任务是确定渲染图像所需的变换矩阵。这可以通过使用GetItemImageTransform.此方法返回一个LeadMatrix其中包含将图像相对于查看器的左上角(客户端区域的像素0,0)放置在查看器表面所需的所有转换值。

自定义渲染图像:

  1. 订阅查看器的一个呈现事件。指图像查看器渲染欲了解更多信息

  2. 获取图像大小使用ImageViewerItem。图象尺寸imageview。GetItemImageSize.将此值设置为图象尺寸类型变量LeadSizeD

  3. 通常情况下,需要渲染整个图像。因此,将目标矩形创建为类型变量LeadRectD与价值观0, 0 imageSize.Width imageSize.Height

  4. 获得该项目图像的变换矩阵,使用GetItemImageTransform,将它设置在一个变量中imageTransform类型的LeadMatrix

  5. 将这个矩阵设置为渲染上下文

  6. 使用目标矩形渲染图像

除了图像变换,您还可以使用以下方法获得该项的任何其他部分的变换矩阵:

成员 描述
GetItemTransform

返回项目本身的变换。用于绘制项目边框,例如在添加项目填充后

GetItemContentTransform

返回内容区域的转换

GetItemFloaterTransform

返回浮动图像的转换(如果有的话)。使用GetItemFloaterSize以上述自定义渲染图像的相同方式自定义渲染浮动器

查看器包含许多方法和属性,用于在物理(控件)和逻辑(视图内部)坐标中获得项目(或其任何部分)的边界矩形:

成员 描述
GetItemViewBounds

获取包括图像在内的项目任何部分的当前物理(控制像素坐标)边界

GetItemBounds

获取包括图像在内的项的任何部分的当前逻辑边界(不包括当前转换)

GetItemViewBounds可用于获取包括图像在内的项目的任何部分的当前物理(控制像素坐标)边界。此方法可用于执行手动命中测试或针对剪切矩形进行测试。GetItemBounds返回逻辑坐标中的相同值(不包括当前转换)。

ImageViewerItemPart枚举可以在方法和属性中使用,以提供我们感兴趣的项目的部分。

视图

视图是使用ViewTransform.视图边界可以使用GetViewBounds.视图的自定义渲染可以按照上面自定义渲染图像中描述的相同方式执行,用视图值替换图像变换和边界。

坐标系与转换

从鼠标单击等事件中获得的点在物理(像素)坐标中,而图像或视图中的点在逻辑坐标中。将一个点从一个坐标转换到另一个坐标需要应用正确的转换矩阵。这可以通过获取相关矩阵并转换点来手动完成,也可以使用以下任何方法自动完成imageview辅助方法:

成员 描述
ConvertPoint

将一个点从任意坐标转换为另一个坐标

ConvertPoints

将点数组从任何坐标转换为另一个坐标

ConvertRect

将矩形从任意坐标转换为另一个坐标

ConvertTransform

将一个相对于某项的变换矩阵转换为相对于不同项的变换矩阵

ConvertBoundsToView

将矩形从逻辑视图坐标转换为物理视图坐标

LEADTOOLS HTML5 JavaScript
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。