图像处理工具包ImagXpress的开发厂商Accusoft Pegasus旗下有多种图像处理相关的控件,但是这些图像处理控件之间的如何加传递图像数据呢?在ImagXpress 11版本之前,是需要将图像的数据用DIB格式表示,不过后来逐渐的就开始寻找一种更加简单的方法来实现组件间的图像数据的传递,最终达到想一个方法调用般简单。
在Accusoft Pegasus下的任何产品或是组合,只要支持可以用简单的方法发送图像的数据到另一个Accusoft对象的Accusoft图像,就将会有两种方法实现数据传递:CopyTo(对象目的地)以及TransferTo(对象目的地),同时任何支持可以简单接收图像数据的Accusoft图像类将会在它的其他文档中出现。
一个CopyTo方法构成了一个完整的图像数据副本,当被调用的时候,源和目标对象将会包含它们相同图像数据的自己单独的副本。一个TransferTo 方法,在另一方面,将完全从一个对象到另一个对象传输图像数据,当完成的时候,这个源对象将不再包含图像数据,这个图像也将会被目标对象所有。
ImagXpress组件中的数据传递
在ImagXpress组件套包中,有四类支持通过CopyTo和TransferTo方法发送它们的图像数据:
ImagXpress - Accusoft.ImagXpressSdk.ImageX
TwainPRO - Accusoft.TwainProSdk.ScannedImage
ISIS Xpress - Accusoft.ISISXpressSdk.Output
ThumbnailXpress - Accusoft.ThumbnailXpressSdk.ThumbnailItem
在ImagXpress组件套包中,只有ImagXpress ImageX类支持接收图像数据,其他的Accusoft产品可能包含额外的类用于可以发送和接收图像数据。
如何从一个ImageX对象传输图像数据到另一对象
即使只是ImagXpress组件,你可以实现简单的从一个ImageX对象到另一个对象之间的复制或传递图像的数据。
C# 示例代码,获取
在上面的示例中,创建了一个小的24位红色图像对象,并命名为redImage,同时保存了它的图像数据为“original.bmp”到磁盘上,如果你打开这个文件,就会看见一个红色的图像。
然后创建一个大的,一个字节的白色图像,命名为whiteImage,但是不是保存到磁盘上,问首先传递它的图像数据到redImage对象上,然后再次 保存redImage当前的图像数据,这次保存为“transferred.bmp”。由于在whiteImage对象里面的图像数据完全转移到 redImage对象上,所以如果你打开第二个文件,就会看见一个大的白色图像。
有兴趣的可以去下载试用一下ImagXpress