创建智能设备应用程序

随着智能手机摄像头分辨率和整体图像质量的提升,其应用已不再局限于拍摄家庭照片。任何需要摄影记录的商业或机构(如保险代理、广告牌维护、犯罪现场检查员、摄影记者等)都可以发现这类Windows Mobile设备非常有用。

在本文中,将演示如何使用微软Visual Studio(2005或2008版本均可)创建一个智能设备应用程序,该程序使用摄像头和内置麦克风。应用程序将提供以下功能:

  • 启动内置摄像头并拍照。
  • 显示拍摄的照片并允许用户调整(通过旋转、裁剪、调整亮度、对比度、伽马校正值)。
  • 录制与照片相关的语音注释。
  • 将照片连同语音注释一起保存到移动SQL CE数据库中。
  • 查看数据库中存储的照片并回放录制的注释。

这是应用程序主屏幕的外观:

先决条件

将需要:

  • 微软Windows Mobile 5.0 SDK(或更高版本),可以从下载。
  • 带有内置摄像头的Windows Mobile 5.0设备,用于测试应用程序。
  • Resco MobileForms Toolkit Volume 2,可以从下载。

Resco MobileForms Toolkit是一套为移动设备设计的Visual Studio控件。在计算机上安装Resco MobileForms Toolkit Volume 2后,这些控件将自动添加到Visual Studio的工具箱中。将在项目中使用这些Resco控件和库:

  • Resco Audio库 for .NET CF
  • Resco ImageBox for .NET CF
  • Resco ImageButton for .NET CF

应用程序可以为.NET Compact Framework 2.0和.NET Compact Framework 3.5创建。只需下载Resco MobileForms Toolkit 2008的适当版本即可。

准备项目

首先,在Visual Studio中创建一个新的智能设备项目。为了让Resco Audio库和Resco ImageBox控件正常工作,必须将包含本地代码的两个*.dll文件复制到移动设备上。将这两个文件作为内容添加到项目中:

  • Resco.Audio.Native.dll
  • Resco.ImageBox.Native.dll

还必须将它们的CopyToOutputDirectory属性设置为CopyAlways或CopyIfNewer。另外,向项目中添加一个名为data.sdf的数据库文件。

数据库

应用程序将使用移动SQL CE服务器,这是.NET Compact Framework的一部分。在部署应用程序时,Visual Studio应该能够自动将.NET Compact Framework和SQL CE服务器安装到移动设备上。数据库模型非常简单。数据库只包含一个表,其模式可以在图1中看到。

Thumb列将包含图像的缩略图,这是通过减小原始图像的大小创建的。这将用于让用户预览图像。

用户界面

应用程序由三个Form对象组成:

  • MainForm允许用户使用相机拍照并进行调整。
  • RecordForm允许用户录制语音注释。
  • ViewImages允许用户查看数据库中的图像并回放录制的注释。

MainForm在Visual Studio的设计器中显示在图2中。它包含ImageBox控件,用于显示拍摄的照片。右上角的ImageButton用于旋转图像和启动内置相机。在表单的下部,有4个滑块,可用于放大和缩小、调整亮度、对比度和伽马校正值。Crop模式复选框将ImageBox控件设置为Crop模式,如图3所示。

用户可以调整裁剪矩形的大小和位置,然后执行裁剪。表单上有两个菜单项:

  • 保存将照片(包括执行的调整)连同语音注释一起保存到数据库中。
  • 查看查看数据库中的图像。

RecordForm的设计如图4所示。该表单非常简单。它包含一个ImageButton,用于开始和暂停录音。在TextBox中显示以毫秒为单位的录制长度。使用Windows Timer对象,每500毫秒刷新一次TextBox的值。用户完成录音后,可以通过点击OK按钮关闭表单。

ViewImagesForm的大部分内容都是在运行时创建的。设计器只包含一个Panel容器,它填充了整个客户端区域。一旦用户选择查看图像,首先计算数据库中的图像数量。然后创建相应数量的ImageButton并将它们添加到Panel中,每个ImageButton显示图像的缩略图(见图5)。用户可以点击这些ImageButton中的任何一个。然后使用ImageBox在ViewImages表单的整个客户端区域中显示图像(见图6)。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485