Inside Paint.net

Inside Paint.net

作者:iRoseFire

本文档最新版本可到www.iRoseFire.com/rosefire访问,mailto:hotcht@hotmail.com

 

关键字:Paint.net,C#,代码分析

 

概述... 1

编译问题:... 1

代码分析:... 2

语言设置:... 2

Undo/Redo实现... 3

 

概述

最近发现一款开源软件“Paint.net”,华盛顿大学学生的作品,其实已经经过了n版本的更新,现在据说得到了微软的支持,从About对话框中可以看到本地化工作就是微软的团队完成的。可能是一个极好的学习.Net编程的好例子。于是下载了源码进行编译,浏览代码中。。。。

此软件在国内各大软件下载网站上都有下载,下面为华军软件园对其的相关介绍:

“华盛顿大学学生用C#做了一个Paint.NET, WindowsMSPaint强大不少,包括LayerClone StmapEdge DetectionMotion BlurHistory等,界面也很不错,样式有点像PHOTOSHOP的感觉,对图像处理有兴趣的朋友有福了,不过美中不足的地方是一次只能处理一张图片。另外此软件已经得到了微软的资助。”

其实在新版本中已经可以同时打开多个文件进行操作。

 

为了给有同样兴趣的人一些帮助,share一些我遇到的问题和心得。

来自官方网站的信息:

Paint.net现在的官方网站是:www.getpaint.net

建议有兴趣的家伙多浏览一些相关网页应该会有不少帮助。

 

编译问题:

刚开始编译我也遇到了一些编译不过的困扰,现在已经解决。

编译前仔细阅读 src/Readme.txt文件,还有programs/Readme.txt,后者在官方网站上没有提及。

我的编译环境:

WindowsXPsp2 + Visualstudio.net 2005 中文专业版,安装了tablePC sdk 1.7(这一步好像不是必须)

 

下载源码后

 

如果不方便从官网下载也可以从我的个人网站中下载:

www.irosefire.com/download/( 需要稍后提供)

加压到本地,

还要下载两个文件

dotnetfx.exe

NetFx64.exe

分别为.net 2.0 运行环境的32位和64位版本

下面为下载地址:

32-bit: http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5

 

64-bit: http://www.microsoft.com/downloads/details.aspx?FamilyID=b44a0000-acf8-4fa1-affb-40e78d788b00

下载后通过类似下面的命令:

dotnetfx.exe /T:[full path to programs/x86] /C

    netfx64.exe /T:[full path to programs/x64] /C

解压到源码包中。

 

 

其实

直接使用winare也可以解压这两个文件,然后将解压后的文件copyx86/x64两个目录中就可以了饿,我觉得这种方式更加方便和容易理解,

 

打开src下面的工程文件:paintdotnet.sln

设置编译方式为:debug and package

 

然后点击重新生成解决方案就可以完成编译。可能需要几分钟时间。

编译完成后在src/setup/release生成了多个安装文件:

我的目录中有七个,分别是带有或者不带.Net运行环境的安装程序。

 

注意在Visual Sutdio中运行时要将配置有debug and packae改为debug模式,并且在项目设置中增加命令行参数:

否则运行会出现“修复某些文件的”对话框。

 

代码分析:

语言设置:

初次以debug方式运行时界面语言为英语,经过一番代码浏览发现需要经过如下设置可支持宣称的八种语言。

。。。

Undo/Redo实现

由于工作关系一直对Undo/redo的方式比较关注,通过对paint.net中的代码学习也发现了一些比较有意思的方面

基本上来说 ,Paint.net中的Undoredo功能是通过command memento模式实现的。

下面是一些关键类图:

 

 

 

未完待续

 

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值