当前位置: 首页 > news >正文

方法自身实现异部调用和WinForm上图片切换效果

以下的代码图片的切换效果已经出来了,但是奇慢无比,本来打算在循环内部加入"Thread.Sleep(n);",但是不用加也很慢。看来C#实现漂亮的图片切换效果我是不行了,希望那位前辈给帮一下忙。
  private   void  SwitchImage(PictureBox pb,Image img, bool  isAsync) {
            
// 异步调用
             if  (isAsync) {
                Thread t 
=   new  Thread( delegate ( object  o) {
                                        SwitchImage((PictureBox)(((System.Collections.Stack)o).Pop()),
                                                    (Image)(((System.Collections.Stack)o).Pop()),
                                                    (
bool )(((System.Collections.Stack)o).Pop())
                                                    );
                                      });
                System.Collections.Stack st 
=   new  System.Collections.Stack( 3 );
                st.Push(
false );
                st.Push(img);
                st.Push(pb);
                t.Start(st);
                
return ;
            }

            
float  opacity  =   0 ;
            
float [][] nArray  = new   float [] { 1 0 0 0 0 }, 
                                
new   float [] { 0 1 0 0 0 }, 
                                
new   float [] { 0 0 1 0 0 }, 
                                
new   float [] { 0 0 0 , opacity,  0 }, 
                                
new   float [] { 0 0 0 0 1 }
                               };

            
            
while  (opacity  <   1 ){
                opacity 
+=   0.1F ;
                nArray[
3 ][ 3 =  opacity;
                ColorMatrix matrix 
=   new  ColorMatrix(nArray);
                ImageAttributes attributes 
=   new  ImageAttributes();
                attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
                Bitmap resultImage 
=   new  Bitmap(img.Width, img.Height);
                Graphics g 
=  Graphics.FromImage(resultImage);
                g.DrawImage(img, 
new  Rectangle( 0 0 , img.Width, img.Height),  0 0 , img.Width, img.Height, GraphicsUnit.Pixel, attributes);
                pb.Image 
=  resultImage;
                
// Thread.Sleep(100);
            }
        }

转载于:https://www.cnblogs.com/gleamy_ming/archive/2009/03/16/1413347.html

相关文章:

  • JAVA实现珠玑算法
  • 窗体控件visible属性问题
  • 状态栏信息来回滚动--js
  • C++ Exercises(二十)
  • Apache之CGI
  • 利用.htaccess文件对访问进行限制
  • gnu-make-doc
  • 在Web应用程序中使用AD来进行成员管理
  • 安装Windows Server 2008 企业版
  • IBM DS3200数据恢复手记,12块300GB sas raid5
  • windbg 命令
  • 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序(1-10)-- 推荐!
  • 硬盘安装ubuntu妙法
  • 计算机系统中的常用进程解析
  • Commons logging分析
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【刷算法】求1+2+3+...+n
  • Android Studio:GIT提交项目到远程仓库
  • ECMAScript入门(七)--Module语法
  • es6要点
  • extract-text-webpack-plugin用法
  • Go 语言编译器的 //go: 详解
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript HTML DOM
  • magento 货币换算
  • spark本地环境的搭建到运行第一个spark程序
  • web标准化(下)
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 编写符合Python风格的对象
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 如何胜任知名企业的商业数据分析师?
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 项目管理碎碎念系列之一:干系人管理
  • 小李飞刀:SQL题目刷起来!
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 怎么把视频里的音乐提取出来
  • 最近的计划
  • 国内开源镜像站点
  • # .NET Framework中使用命名管道进行进程间通信
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #pragma multi_compile #pragma shader_feature
  • (007)XHTML文档之标题——h1~h6
  • (26)4.7 字符函数和字符串函数
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (一) springboot详细介绍
  • (转)我也是一只IT小小鸟
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (转载)虚函数剖析
  • .bat批处理(一):@echo off
  • .md即markdown文件的基本常用编写语法
  • .Net Core和.Net Standard直观理解
  • .NET 设计模式初探
  • .NET性能优化(文摘)