科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件.NET图像编程(GDI+)自制“小屏保”

.NET图像编程(GDI+)自制“小屏保”

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文讲述如何以编程的方式来实现图像的变换,它的步骤和源代码,供大家参考!

作者:hhrong2312 来源:Csdn博客 2007年12月11日

关键字: 图像编程 GDI 小屏保

  • 评论
  • 分享微博
  • 分享邮件
1、在图像编程方面一般VC用的比较多,主要是考虑到了速度方面,但.net在这方面似乎也毫不逊色,尽管受CLR(公共语言运行时)的影响,但以现在的硬件配置来看似乎也觉不出有什么差异来;

2、图像编程只能在windows窗体中实现,在网站中不能实现,windows程序时直接运行在操作系统上的,如果要以html的形式让浏览器解析实现这样的效果,似乎有点难(不同于javacript脚本),下面就让我们来看看是怎么以编程的方式来实现图像的变换的;

首先拖一个timer控件,右击它的属性我们会看到有个叫做“interval”的属性,默认值是100它表示该控件事件每隔0.1秒就会自动触发执行一次;然后双击tric事件,在事件里编写程序:

还有一点值得说的是timer控件的Enable值默认情况下是false,也就是说在不改变该值的情况下它是不会执行的,那么我们在form页面加载的时候将它设置为true;以触发tick事件的执行;

定义两个Graphic 对象 g1,g2,用它来实现调用.net类库的绘图函数;

看源码:

public partial class Form_Hhrong : Form
......{
public Form_Hhrong()
......{
InitializeComponent();
this.timer1.Enabled = true;
}
Graphics gline;
Graphics gbizer;
int i = 0;
byte r = 70;/**//**//**////定义三原色的值
byte g = 60;/**//**//**////通过后面方法中对三个值的改写
byte b = 30;/**//**//**////实现颜色的渐变

///画直线条:
public void showline()
......{
gline  = this.CreateGraphics();/**//**//**////this指代的是当前窗体
Color cl = Color.FromArgb(r,g,b);/**//**//**////颜色的混合色值
Pen pn = new Pen(cl);
gline.DrawLine(pn,0,i,this.Width ,i);/**//**//**////在行方向上确定一条直线
///一名实现从上到下的变动
///以及颜色的渐变:
}
/**//**//**//// <summary>
/// 画贝塞尔曲线:
/// </summary>
int x ;
int y;/**//**//**////定义点的变动幅度:
public void showbizer()
......{
gbizer = this.CreateGraphics();
Color clr = Color.FromArgb(r, g, b);
Pen pn = new Pen(clr);
Point[] pp =......{ new Point(5+x,6+y),new Point (20+x,30+y),

new Point (42+x,58+y),new Point (79+x,59+y)  };
gbizer.DrawBezier(pn, pp[0],pp[1],pp[2],pp[3]);
}
private void timer1_Tick(object sender, EventArgs e)
......{
showline();
i++;     /**//**//**////让线条向下移动一个点;
r += 20;
g += 10;
b += 25;
showbizer();
x += 1;
y += 1;
}
}

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章