随着智能手机摄像头分辨率和整体图像质量的提升,其应用已不再局限于拍摄家庭照片。任何需要摄影记录的商业或机构(如保险代理、广告牌维护、犯罪现场检查员、摄影记者等)都可以发现这类Windows Mobile设备非常有用。
在本文中,将演示如何使用微软Visual Studio(2005或2008版本均可)创建一个智能设备应用程序,该程序使用摄像头和内置麦克风。应用程序将提供以下功能:
这是应用程序主屏幕的外观:
将需要:
Resco MobileForms Toolkit是一套为移动设备设计的Visual Studio控件。在计算机上安装Resco MobileForms Toolkit Volume 2后,这些控件将自动添加到Visual Studio的工具箱中。将在项目中使用这些Resco控件和库:
应用程序可以为.NET Compact Framework 2.0和.NET Compact Framework 3.5创建。只需下载Resco MobileForms Toolkit 2008的适当版本即可。
首先,在Visual Studio中创建一个新的智能设备项目。为了让Resco Audio库和Resco ImageBox控件正常工作,必须将包含本地代码的两个*.dll文件复制到移动设备上。将这两个文件作为内容添加到项目中:
还必须将它们的CopyToOutputDirectory属性设置为CopyAlways或CopyIfNewer。另外,向项目中添加一个名为data.sdf的数据库文件。
应用程序将使用移动SQL CE服务器,这是.NET Compact Framework的一部分。在部署应用程序时,Visual Studio应该能够自动将.NET Compact Framework和SQL CE服务器安装到移动设备上。数据库模型非常简单。数据库只包含一个表,其模式可以在图1中看到。
Thumb列将包含图像的缩略图,这是通过减小原始图像的大小创建的。这将用于让用户预览图像。
应用程序由三个Form对象组成:
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)。