← 返回所有博客文章

作为LEAD Technologies 25周年纪念的一部分,我们正在搞一个“25天收集25个项目来展示LEAD功能强度和易用性”的活动。今天要展示的项目来自于乔的分享。

区域处理截图

clip_image001

它是做什么的

使用LEADTOOLS第 18版,该项目可以使用注解来绘制在其上进行图像处理的区域。

 

所使用的功能

· Annotations

· Image Processing

· Image Viewer

· iOS / OS X

 

 

开发进程日志

大家好,我是乔。我要创建这样一个程序,该程序可以在一个由矩形或椭圆注解决定的图像的特定区域上执行图像处理操作。

我正在使用的是LEADTOOLS第18版的文档成像程序(IOS)。我要在苹果自带的编程环境下,用Xcode来开发该应用程序。

在开始之前,我需要确定要使用哪种编程语言,是Objective-C还是Swift。我们的iOS的框架是用Objective-C编写的,但是,由于Objective-C框架能够应用于Swift代码中(在Bridging Header File的帮助下),所以我要使用Swift来进行编程,以便展示应该如何使用LEADTOOLS的iOS SDK与Swift。

启动Xcode之后,我选择了一个单一视图应用程序,因为我们只需要一个视图。查找了与SDK相关联的IPDemo之后,我发现了一个非常有用的辅助类(DemoCommandItem),所以,我将其导入到项目中。我还添加了以下所有这些控件LeadtoolsLeadtools.KernelLeadtools.ControlsLeadtools.Converters,所有的Leadtools.ImageProcessing.* 框架,以及所有的Leadtools.Annotations.* 框架。

在输入所有的框架之后,我将它们添加到了该项目的桥接头文件中,(请注意,我使用的是这里提供的LEADTOOLS模板,所以,预编译的头文件和项目的设置已经为我配置好了),这样,所有的Objective-C的API在Swift代码中也是可用的。

既然现在我已经获得了所添加的全部LEADTOOLS框架,那么,我就要迅速地进行编译,以便使LEADTOOLS API在所有文件中公开可用。然后,我要继续配置我的Storyboard。在主视图中,我分别添加了一个LTImageViewer 类实例和一个UICollectionView 类的实例(缩略图)。

现在,在ViewController 类中,我已经编写了用来设置各个栏按钮项目的代码(用于加载命令),用来容纳所有命令的数组,以及另一个作为堆栈来允许我们撤消命令的数组,然后,我又为主视图中的UICollectionView设置了委托和dataSource 方法。

既然LEADTOOLS提供了我使用的所有图像处理命令,那些也是我不得不做的事情。所以,在我运行它的时候,可以滚动浏览所有的缩略图来选择我想使用的命令。一旦我运行该命令,所有的缩略图会进行更新,以便使我得知将在当前图像上运行的下一个命令将是什么样子。这操作起来简直是超级简单!至此为止,该项目的第一部分已经完成。

为了使该图像处理程序只在注解所规定的区域内运行,我们需要将几个类添加到我们的ViewController 类:LTAnnAutomationManagerLTAnnAutomationLTAnnObject。我们首先创建了我们的LTAnnAutomationManagerLTAnnUniversalRenderingEngine类,我们用自己的管理器来创建LTAnnAutomation 类,然后,添加LTAnnObject(用于启动的LTAnnRectangleObject )。然后,我们对运行图像处理命令的方法进行修改,以便在运行图像处理命令之前设置图像中的区域。这被设置的区域使用了注解的范围。完成以上这些步骤之后,我们的项目就完成了!

这个项目,这一切的一切,我花了6小时的时间来进行设置。困扰我的主要问题在于如何设置该自定义的UICollectionView 类(与LEADTOOLS不相干)。该项目的LEADTOOLS部分我花了不超过一到两个小时的时间就完全配置好了。

 

下载该项目

该示例项目的源代码您可以点击这里进行下载。

24 Region-aware Image Processing and Annotations in Swift for iOS.zip (1.03 mb)

要运行该项目,请将其解压缩到该目录下:C:\Leadtools 18\Examples\Xcode\iOS\ directory。

 

支持

关于其他产品的更多信息,请访问我们的官方网站

欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。

同时欢迎您使用评估版期间的免费技术支持