zoukankan      html  css  js  c++  java
  • 自定义绘制图片的一个小技巧

    要在picturebox中自由绘制图片,一开始将绘制函数写入在Paint中

    public void ff_Paint(object sender, PaintEventArgs e)
     {
      CreatShow(Graphics.FromHwnd(fpic.Handle));  //这样卡爆了.
     }
    
    void fpic_Paint(object sender, PaintEventArgs e)
    {
    CreatShow(e.Graphics); //这样卡爆了.
    }

    结果加载了几张图片后,程序就卡爆了,而且经常不显示,说明不管是针对picturebox控件本身,还是它的父载体panel, 显示销量都极差.

    后来思考了很久 换了一种方式, 

    //先创建一个位图
                Bitmap bp = new Bitmap(fpic.Width, fpic.Height); // 用于缓冲输出的位图对象
                Graphics g = Graphics.FromImage(bp);
    
    //再将内容绘制在位图之上
                for (int i = 0; i < Picspathary.Count; i++)
                {
                    Drawone(g, Picspathary[i], i);
                }
    
    //最后
                fpic.Image = bp;

    这样之后, 一点都不卡了.

    //网上看到的 说加了这句话效果好
    
            public Form1()
            {
                InitializeComponent();
    
                this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true); 
    
            }
    

      

  • 相关阅读:
    成功后的迷失
    让主参与的人生
    生命的见证
    谁偷走了我的安全感
    简单理解分页原理
    WebApp开发入门
    程序员必需知道的搜索引擎的搜索技巧
    提高网页打开速度技巧
    十分钟了解HTTP协议
    简单实现页面临摹设计图功能
  • 原文地址:https://www.cnblogs.com/flyant/p/4277058.html
Copyright © 2011-2022 走看看