作者: 乔克斯
查看: 19863|回复: 42
打印 上一主题 下一主题

[源码] 【增强版画图程序】纯C#实现的mspaint增强版画图程序

[复制链接]
跳转到指定楼层
楼主
乔克斯 发表于 2015-8-21 11:44:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看: 19863|回复: 42
说明:
  • 这是用C#/Winform/GDI+实现的类似mspaint的画图程序。
  • 目前实现了直线、折线、矩形、椭圆、指示箭头等规则形状。
  • 这些形状被绘制后,不会像mspaint那样,就动不了了,而是可以再次被编辑,包括旋转、缩放等。

效果截图:
1.主界面一。

2.主界面二。


详细介绍:
  • 对于没做过这方面程序的人,最好奇的可能就是,你用Graphics类画出一个东西后,怎么样才能重新选中、移动、编辑它?
  • 以画一个矩形为例来说明,你如果用Graphics类在一个控件(Control)上画了个矩形,并且把矩形的起点坐标、大小等数据记住,那么用户在控件上单击的时候,你就能判断出用户是否在矩形上单击了,如果是,就表示矩形被选中了,如果用户同时还移动了鼠标,那么就可以根据移动的距离重新计算矩形的起点坐标,然后重新画这个矩形。
  • 这就是Extended Paint用的基本方法。在内部记住各种形状(线段、矩形、椭圆等)的起点坐标、大小、颜色等等信息,在用户移动、旋转形状后,要随即更新这些信息,并重新绘制形状。
  • 其它的难点还有不少,比如用户将图像放大,并在放大的视图上绘制新的形状,这时候的处理跟未放大时有什么不同?再如撤销(后退一步)功能,怎么样放弃最后一次操作,返回之前的状态?放大和撤销这两个功能现在还为实现,但是大致思路已经有了。
  • 做这个程序有两个目的,一是把功能写全后,用我之前写的一个控件库来做其UI,然后这个画图程序作为控件库的应用例子。二是做一个实用的截图、画图程序,尽量仿mspaint来做,但要在个方面有所增强。当然了目前Extended Paint还很简单,没有截图功能、不能粘贴位图、不能编辑文字等等,后面会继续完善。

案例源码下载:


原文来自:ping3108
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 转播转播
回复 论坛版权

使用道具 举报

沙发
Blue_Pen 发表于 2015-8-21 12:36:43 | 只看该作者
Good Job
回复

使用道具 举报

板凳
贱贱的贱贱 发表于 2015-8-21 12:37:11 | 只看该作者
好东西·~·顶
地板
fessicon 发表于 2015-8-21 18:59:43 | 只看该作者
强啊,剪切板的截图能粘贴到画板上吗?
5#
HJL 发表于 2015-8-21 19:39:24 | 只看该作者
骚 乔 这个屌
6#
 楼主| 乔克斯 发表于 2015-8-21 21:09:52 | 只看该作者
fessicon 发表于 2015-8-21 18:59
强啊,剪切板的截图能粘贴到画板上吗?

这个功能扩展起来不难。读取剪贴板的图片,然后创建对应的画图对象即可。
7#
忧郁之子 发表于 2015-8-23 14:20:35 | 只看该作者
很强大的画图,支持了。
8#
jackxiyu 发表于 2015-8-26 08:44:46 | 只看该作者
下载下来学习学习!
9#
jeanary 发表于 2015-9-2 13:30:42 | 只看该作者
强大,赞一个
10#
hhjj3388 发表于 2015-9-3 23:35:48 | 只看该作者
我擦··着个厉害啊·!
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-4-26 16:13, Processed in 0.600274 second(s), 35 queries , Gzip On.

快速回复 返回顶部 返回列表