叶帆工作室

嵌入式开发爱好者(十年开发经验,精通C/C++/VC/VB/C#...)

用户操作
[即时聊天] [发私信] [加为好友]
刘洪峰ID:yefanqiu
534478次访问,排名79(-1)好友0人,关注者217
微软MVP / CSDN 2008十大MVB/MSDN中文技术论坛版主
yefanqiu的文章
原创 218 篇
翻译 0 篇
转载 3 篇
评论 1099 篇
叶帆的公告
本博客原创文章,作者保留一切权利,需经作者同意后方可转载,转载时 请注明[叶帆工作室]及文章链接。yefan@vip.sina.com
【简介】叶帆[微软MVP]
【文章】叶帆文章列表
【软件】叶帆共享软件列表
最近评论
BinYu:我用的是vista home basic sp1,但vs2005强行装不上去,请帮忙分析一下,qq:811344767,先谢谢了
wjh6877:算法想好了吗?

没有就是空话
一生好人:其实我也想来正版,但生活逼人,没办法啊
fox23:something like java card;-)
wwqqha:不错不错
文章分类
收藏
    相册
    叶帆照片
    【叶帆软件】
    [01]VB源码之友(V2.1.548)
    [02]API浏览器.net(V5.0)
    [03]叶帆成语词典(V2.0.8)
    [04]叶帆密码库(V1.2.8)
    【叶帆资源】
    DAO 2.0引擎
    叶帆快速通道
    MSDN-MVP
    Windows Embedded 专题
    中文MSDN
    叶帆圈子--工业自动化
    叶帆工作室(博客园)
    叶帆工控--工业自动化
    叶帆群组--工业应用开发
    微软中文技术论坛
    微软硬件创新中心(HIC)
    瑞康社区论坛
    叶帆友情链接
    张欣
    枕善居
    莫依
    葛涵涛
    郑建
    陈辉
    马宁
    马骐
    魏涛序
    黎波
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 C#GDI+图元组态和IronPython脚本应用之LED影像系统收藏

    新一篇: C#嵌入IronPython脚本示例(hello world) | 旧一篇: 提高精简框架集程序的性能

            这段时间一直进行LED影像系统紧张的开发工作,目前成绩还是非常“斐然”的,终于有了一点透气的机会:)

            该系统从技术角度来说包括三点:一是图元组态(这点和普通的组态软件没有什么区别,由于面对的用户技术层次相对较低,所以把原来嵌入式组态修改属性的属性列表,修改为属性面板,以直观的方式修改组件属性);二是图片特效制作,图片特效主要是淡入淡出、旋转、晶格、移动、放缩等等;三是IronPython脚本,该脚本为C#语言开发,是作者为了证明C#效率不行而开发的代码,没有想到事与愿违,效率反而出奇的好,被微软收编后,推出了开源的IronPython脚本,该脚本最大的特点就是和C#无缝集成,可以引用C#所有的库,就如C#本身引用一样,此外还能直接引用C#自己开发的库(其实和系统库的引用没有本质区别),本系统就采用了该脚本进行特效处理,这样系统的特效完全实现了定制,并且接口丰富,应对能力极强。

           

     这是脚本特效编辑器(下图)

    这是特效具体的一个脚本代码:

     

    def process():   
      
    if this.RunState == 0:
        Init()
        this.RunState 
    = 1
        this.Image 
    = this.Data.BmpImage

      this.Total 
    = 80 / (this.Rate + 1)  
      this.Current 
    = this.Current + 1
      dw
    =BitmapProcess.GetDiagonalWidth(this.Image.Width,this.Image.Height)
      ds 
    = (float)(dw) / this.Total
      width 
    = ds * (this.Current + this.Total / 2)

      bmp 
    = BitmapProcess.OpenBevel(this.Image, Orientation_Bevel.TopLeft, width, Color.Black)
      bmp 
    = BitmapProcess.OpenBevel(bmp , Orientation_Bevel.BottomRight, width, Color.Black)
      bmp 
    = BitmapProcess.OpenBevel(bmp , Orientation_Bevel.TopRight, width, Color.Black)
      bmp 
    = BitmapProcess.OpenBevel(bmp , Orientation_Bevel.BottomLeft, width, Color.Black)
      this.Data.BmpImage 
    = bmp

      
    if width >= dw:
        this.Current 
    = this.Total + 1

    def Init():
      
    import clr
      clr.AddReferenceByPartialName(
    "System.Windows.Forms")
      clr.AddReferenceByPartialName(
    "System.Drawing")
      clr.AddReferenceToFile(
    "BitmapProcess.dll")

      
    from System.Windows.Forms import *
      
    from System.Drawing import *
      
    from LBxSoft.Drawing import *

    try:
      process()
    except:
      
    print "Error"

    发表于 @ 2007年05月28日 09:06:00|评论(loading...)|编辑

    新一篇: C#嵌入IronPython脚本示例(hello world) | 旧一篇: 提高精简框架集程序的性能

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 叶帆