基于ARM和WinCE的电子相册设计与实现实验指导书.docx
- 文档编号:28805794
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:34
- 大小:1.08MB
基于ARM和WinCE的电子相册设计与实现实验指导书.docx
《基于ARM和WinCE的电子相册设计与实现实验指导书.docx》由会员分享,可在线阅读,更多相关《基于ARM和WinCE的电子相册设计与实现实验指导书.docx(34页珍藏版)》请在冰豆网上搜索。
基于ARM和WinCE的电子相册设计与实现实验指导书
基于ARM和WinCE的电子相册设计与实现
实验指导书
1开发环境配置
1.1安装和配置MicrosoftActiveSync4.5
安装完成后,打开“我的电脑”,可以看到出现了“移动设备”这一项目。
如图1-1所示。
图1-1移动设备
打开ActiveSync运行界面,单击菜单栏“文件”下“连接设置”。
按图1-2进行配置。
图1-2连接设置
2.2.安装和配置WinCE虚拟器
(1)VisualStudio2005会自带WinCE2.0虚拟器。
因此,以默认方式安装VisualStudio2005即可。
(2)打开VisualStudio2005,选择菜单栏“工具”,下“设备仿真器管理器”。
如图1-3所示。
图1-3设备仿真器管理器
(3)在列表中,右击“PocketPC2003SE仿真程序”,选择“连接”。
出现WinCE模拟器。
如图1-4所示。
图1-4WinCE模拟器
(3)单击虚拟器窗口中,菜单栏“文件”下“配置”,在“常规”标签中,设置共享文件夹,指定一个计算机中文件夹位置即可。
如图1-5所示。
图1-6仿真程序属性
(4)在虚拟器中单击开始,选择“程序”,选择“资源管理器”,点击下方存储卡图标即可看到之前设置的共享文件夹中的内容。
如图1-7所示。
图1-7储存卡中内容
(6)在“设备仿真器管理器”中,右击“PocketPC2003SE仿真程序”,选择“插入底座”。
打开ActiveSync,点击“文件”,“进行连接”。
与模拟器连接成功后出现连接成功提示。
如图1-8所示。
图1-8连接成功提示
(7)打开“我的电脑”,打开“移动设备”,就能看到模拟器中的所有文件,这样就能方便的对模拟器中的文件进行管理。
如图1-9所示。
图1-9查看模拟器中文件
2电子相册功能设计与开发
2.1功能整体设计
本设计包括登陆模块,相片浏览模块,相片处理模块,触摸功能模块。
如图2-1所示。
图2-1电子相册整体功能设计
2.2新建智能设备项目
(1)在VisualStudio2005中,点击“菜单栏”下“新建”,“项目”,新建智能设备项目,如图2-2所示。
图2-2新建智能设备项目
(2)在VisualStudio2005“设备”工具栏中指定模拟器为目标设备,如图2-3所示。
图2-3目标设备
(3)在共享文件夹或模拟器设备中其他文件夹下放入一些图片如图2-4所示。
图2-4在模拟器中添加的图片
2.3登陆模块
2.3.1登陆界面构成
登陆界面为欢迎界面,由三个picturebox控件组成,其中picturebox1用来显示相册照片;picturebox2作为背景图片,picturebox3为欢迎使用图片。
如图2-5所示。
图2-5登陆界面
2.3.2登陆界面功能介绍及其代码
登陆的同时,直接读取路径下的相片,显示在picturebox1中,若该路径下不存在该相片,则会出现messagebox未找到图片的提示,如图2-5所示。
图2-5不存在指定相片提示
为picturebox1添加了DoubleClick双击事件,双击picturebox1后,可以打开路径下的文件夹中的相片,从而在picturebox1中显示该相片,单击欢迎使用的picturebox3控件可以进入到相片浏览界面,如图2-6所示。
图2-6picturebox1事件属性
设计代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Collections;
usingSystem.IO;
usingSystem.Runtime.InteropServices;
namespaceDeviceApplication1
{
publicpartialclassForm1:
Form
{
ArrayListlist=newArrayList();
stringfilename;
Pointup;
Pointdown;
boolbCapturing=false;
publicForm1()
{
InitializeComponent();
}
privatevoidDoubleClick(objectsender,EventArgse)
{
this.openFileDialog1.Filter="图像文件(JPeg,Gif,Bmp,etc.)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif;*.tiff;*.png|JPegfiles(*.jpg;*.jpeg)|*.jpg;*.jpeg|GIFfiles(*.gif)|*.gif|BMPfiles(*.bmp)|*.bmp|Tifffiles(*.tif;*.tiff)|*.tif;*.tiff|Pngfiles(*.png)|*.png|所有文件(*.*)|*.*";
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
stringMyFileName=this.openFileDialog1.FileName;
Bitmapbm=newBitmap(MyFileName);
Imageimage=Image.FromHbitmap(bm.GetHbitmap());
this.pictureBox1.Image=image;
filename=MyFileName;
}
}
privatevoidForm1_Load(objectsender,EventArgse)
{
DirectoryInfodi=newDirectoryInfo(@"\StorageCard\");
//DirectoryInfodi=newDirectoryInfo(@"\programfiles\deviceapplication1\");
FileInfo[]fis=di.GetFiles();
foreach(FileInfofiinfis)//查询
{
list.Add(fi.Name);
}
if(list.Count!
=0)
{
itmapbm=newBitmap(@"\StorageCard\阳光下的缤纷.bmp");
Imageimage=Image.FromHbitmap(bm.GetHbitmap());
this.pictureBox1.Image=image;
}
else
MessageBox.Show("未找到图片!
");
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidForm1_MouseDown(objectsender,MouseEventArgse)
{
down=newPoint(e.X,e.Y);
bCapturing=true;
}
privatevoidForm1_MouseUp(objectsender,MouseEventArgse)
{
if(bCapturing)
{
}
}
privatevoidpictureBox3_Click(objectsender,EventArgse)
{
FormContainer.form2.Show();
this.Hide();
}
privatevoidpictureBox2_MouseDown(objectsender,MouseEventArgse)
{
down=newPoint(e.X,e.Y);
bCapturing=true;
}
privatevoidpictureBox2_MouseMove(objectsender,MouseEventArgse)
{
if(bCapturing)
{
}
}
}
}
2.4浏览模块
2.4.1浏览界面构成
相片浏览界面主要实现相片的浏览翻页功能,由四个picturebox控件和一个label控件组成。
如图2-7所示。
其中,picturebox1用于显示前一张相片;picturebox2用于显示后一张相片;picturebox3用于显示当前相片;picturebox5用于显示背景图片;label1用于显示相片文件的文件名。
如图2-8所示:
图2-7相片浏览界面
图2-8label1的属性设置
2.4.2相片浏览界面功能介绍及其代码
用户可以通过触摸的方式,实现相片的翻页浏览,同时能够预览到当前相片的前一张和后一张相片,也可以看到当前相片的文件名。
设计代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Collections;
usingSystem.IO;
namespaceDeviceApplication1
{
publicpartialclassForm2:
Form
{
string[]sop={".jpg",".jpeg",".gif",".bmp",".tif",",tiff",".png"};
ArrayListlist=newArrayList();
ArrayListextension=newArrayList();
intcount=0;
intcountn=0;
intcountp=0;
Pointup;
Pointdown;
stringfilename;
stringfilename1;
stringfilename2;
stringfilename3;
stringdir;
boolbCapturing=false;
publicForm2()
{
InitializeComponent();
}
publicForm2(stringfile)
{
InitializeComponent();
filename=file;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
//Form3f3=newForm3(filename3);
//f3.Show();
FormContainer.form3.Show();
this.Hide();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Hide();
//Form1f1=newForm1();
//f1.Show();
FormContainer.form1.Show();
}
privatevoidForm2_Load(objectsender,EventArgse)
{
foreach(stringainsop)
extension.Add(a);
dir=@"\StorageCard\";
DirectoryInfodi=newDirectoryInfo(dir);
FileInfo[]fis=di.GetFiles();
foreach(FileInfofiinfis)//查询
{
if(extension.Contains(fi.Extension))
{
list.Add(dir+fi.Name);
}
}
if(list.Count!
=0)
{
picturen();
}
else
{
MessageBox.Show("Cannotfind!
");
//button3.Enabled=false;
//button4.Enabled=false;
}
}
privatevoidpictureBox3_Click(objectsender,EventArgse)
{
Class2.filename=filename3;//共享参数
this.Hide();
FormContainer.form3.Show();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
picturep();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
picturen();
}
privatevoidpicturep()
{
count++;
if(count>list.Count-1)
count=0;
filename3=(string)list[count];
Bitmapimg3=newBitmap(filename3);
label1.Text=filename3.Substring(filename3.LastIndexOf(@"\")+1,filename3.IndexOf(@".")-filename3.LastIndexOf(@"\")-1);
Class2.filename=filename3;
if(count>0)
countn=count-1;
elsecountn=list.Count-1;
filename2=(string)list[countn];
Bitmapimg2=newBitmap(filename2);
pictureBox2.Image=img2;
Class2.filename=filename2;
if(count countp=count+1; elsecountp=0; filename1=(string)list[countp]; Bitmapimg1=newBitmap(filename1); pictureBox1.Image=img1; } privatevoidpicturen() { count--; if(count<0) count=list.Count-1; filename3=(string)list[count]; Bitmapimg3=newBitmap(filename3); pictureBox3.Image=img3; label1.Text=filename3.Substring(filename3.LastIndexOf(@"\")+1,filename3.IndexOf(@".")-filename3.LastIndexOf(@"\")-1); if(count>0) countn=count-1; elsecountn=list.Count-1; filename2=(string)list[countn]; Bitmapimg2=newBitmap(filename2); pictureBox2.Image=img2; if(count countp=count+1; elsecountp=0; filename1=(string)list[countp]; Bitmapimg1=newBitmap(filename1); pictureBox1.Image=img1; } privatevoidForm2_MouseDown(objectsender,MouseEventArgse) { down=newPoint(e.X,e.Y); bCapturing=true; } privatevoidForm2_MouseMove(objectsender,MouseEventArgse) { if(bCapturing) { } } privatevoidForm2_MouseUp(objectsender,MouseEventArgse) { up=newPoint(e.X,e.Y); intvectorx=up.X-down.X; intvectory=up.Y-down.Y; if(vectorx<-80) { if(vectory>80) { FormContainer.form1.Show(); this.Hide(); } elseif(vectory<-80) this.Close(); elseif(Math.Abs(vectory)<30) picturen(); } elseif((vectorx>80)) if((Math.Abs(vectory)<30)) picturep(); bCapturing=false; } privatevoidpictureBox3_Click_1(objectsender,EventArgse) { //this.pictureBox3.Capture=true; Class2.filename=filename3;//共享参数 this.Hide(); FormContainer.form3.Show(); } privatevoidpictureBox5_Click(objectsender,EventArgse) { } } } 其中用到的类文件class2代码如下: usingSystem; usingSystem.Collections.Generic; usingSystem.Text; namespaceDeviceApplication1 { staticclassClass2 { publicstaticstringfilename; } } 2.5相片处理模块 2.5.1相片处理界面构成 相片处理界面主要实现相片的放大缩小功能。 由两个picturebox控件、一个label控件和一个定时器控件组成。 其中picturebox2用来显示相片;picturebox3显示背景图片;label3显示picturebox2中相片的路径名;定时器控件用来传递参数。 如图2-9所示: 图2-9相片处理界面 2.5.2相片处理界面功能介绍及其主要代码 相片处理主要对相片进行放大和缩小的操作,同时显示出该相片的路径。 由于界面大小的限制,只能够对相片放大或缩小两次,超出范围则会出现messagebox的提示。 、 设计码如下: usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usingSystem.Windows.Forms; namespaceDeviceApplication1 { publicpartialclassForm3: Form { stringfile; intpicwidth;//宽度 intpicheight;//高度 Pointup; Pointdown; boolbCapturing=false; publicForm3(){ InitializeComponent(); } privatevoidbutton1_Click(objectsender,EventArgse) { this.Hide(); FormContainer.form2.Show(); } privatevoidbutton2_Click(objectsender,EventArgse) { FormContainer.form2.Show(); this.Hide(); } privatevoidForm3_Load(objectsender,EventArgse) { file=Class2.filename; Bitmapimg2=newBitmap(file); pictureBox2.Image=img2; label3.Text=file; timer1.Enabled=true; timer1.Interval=50; } privatevoidbutton3_Click(objectsender,EventArgse) {} privatevoidbigger() { picwidth=pictureBox2.Size.Width; picheight=pictureBox2.Size.Height; picwidth=picwidth*2; picheight=picheight*2; Sizepicsize=newSize(); picsize.Width=picwidth;//宽 picsize.Heig
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM WinCE 电子相册 设计 实现 实验 指导书