【源码共享 】- 多线程版仿PS的缩放模糊(ZoomBlur),支持进度显示、中途取消、适时更新等。

问题描述

之前一直在用VB6进行图像处理算法学习,最近转C#,对C#的效率感到很满意。过年这段日子在家里没事琢磨着多线程和图像的结合,由于从没有进行过多线程编程,在一些前人的指导下,马马虎虎的拼凑了一些想法,终于搞定了一个简单的多线程效果,现共享给大家,主要目的在于抛砖引玉,还烦请这方面的高手能给我们做个真正完美的图像出算法上的多线程实例。我用的实例是缩放模糊(ZoomBlur),因为这个算法比较耗时,所以对于大图来说不用多线程,会使主界面的UI操作失去响应。关于这个算法的原始代码在网络上有。Paint.net中也有该代码的算法,我这里还对该代码进行了一定的优化。工程下载地址:Paint.net中原生的算法:预览:再次真切的希望多线程方面的高手能给个带进度、取消方面的完美的图像处理教程。

解决方案

本帖最后由 laviewpbt 于 2013-02-16 10:53:54 编辑
解决方案二:
支持.
解决方案三:
多线程其实非常简单,而且有多种方式开启,除非要设置STA标志的,我一般都直接通过委托的BeginInvoke开启后台线程,那个代码简介,而且会自动随主线程的结束自动停止。如果手动声明一个Thread类启动线程,主线程强制性退出之前不先中止辅助线程的话,界面是没了,进程里面还有残余。
解决方案四:
进来学习下,,,
解决方案五:
引用2楼qldsrx的回复:

多线程其实非常简单,而且有多种方式开启,除非要设置STA标志的,我一般都直接通过委托的BeginInvoke开启后台线程,那个代码简介,而且会自动随主线程的结束自动停止。如果手动声明一个Thread类启动线程,主线程强制性退出之前不先中止辅助线程的话,界面是没了,进程里面还有残余。

真的是这样吗?
解决方案六:
呵呵,支持一下。呵呵。
解决方案七:
你找点代码示例看下就会了,比起微软推出的WPF要简单多了。另外微软在VS2012里,.NET4.5中支持async关键字,用那个进行异步编程还要方便,感觉和同步编程没什么区别,可惜.NET4.5不支持XP系统,只能Vista以上的系统中安装,不然肯定火。
解决方案八:
不错,顶一下!
解决方案九:
老大太强大了,顶一个
解决方案十:
发现网上的图像处理编程都是老大写的呢
解决方案十一:
没有用过这个算法。不过看楼主代码。自己认为该优化的都优化了。。。
解决方案十二:
引用9楼lxl13596的回复:

发现网上的图像处理编程都是老大写的呢

以前VB版块看到好多。。。
解决方案十三:
学习下。
解决方案十四:
进来学习!!
解决方案十五:

解决方案:

解决方案:
支持了,谢谢分享。
解决方案:
顶!!!支持一下!
解决方案:
我们群里的工作狂
解决方案:

解决方案:

解决方案:

解决方案:

解决方案:
学习了,准备搞个C++版本。
解决方案:
支持楼主,一直很想在图形算法上提升一下
解决方案:

解决方案:
进来学习学习!
解决方案:
新手进来学习一下
解决方案:
进度、取消方面的完美的图
解决方案:
进来看看不懂图像处理的东西
解决方案:
楼上说很强大,路过,路过
解决方案:
引用23楼clever101的回复:

学习了,准备搞个C++版本。

搞好了请共享下哦。我也会准备看看C的效率会高多少。
解决方案:
学了一段时间,间断后,有忘得差不多了!
解决方案:
支持下,,,,,,,,,,,,
解决方案:

解决方案:

解决方案:

解决方案:
顶!!!支持一下!
解决方案:
支持下,,,,,,,,,,,,
解决方案:

解决方案:
非常不错,支持一下
解决方案:
图形处理???--高手
解决方案:
来开眼界了!
解决方案:
哦彭开始搞C#了,支持下!
解决方案:
感谢分享!
解决方案:
verygood楼主
解决方案:
该回复于2014-04-22 18:30:39被版主删除
解决方案:
进来支持一下
解决方案:
进来支持一下
解决方案:
这个是一个不错的东西
解决方案:
进来支持一下,不错的东西,可惜太难了

时间: 2024-07-28 15:03:52

【源码共享 】- 多线程版仿PS的缩放模糊(ZoomBlur),支持进度显示、中途取消、适时更新等。的相关文章

JS连连看源码完美注释版(推荐)_javascript技巧

闲来无事,也写一个javascript连连看,注释比较完整,想学的朋友可要看了. 连连看最难的部分应该是路径搜索,即鼠标点的两点之间看有无可通的路径. 看过有人写的递归写法,心里痒痒,就捉摸了一下,发现不用递归的情况下难度也不大. 路径搜索由简到难分析,先分析一条直线上是否可直线连通,再分析一条直线上的两点通过拐两个弯是否可通,最后分析不在一条直线上的情况. 在IE6, IE8, firefox3.0.3下测试过. 复制代码 代码如下: <html><head><meta h

微信开发,将微信官网源码(java版)导入,用tomcat发布时报错,求解答?

问题描述 微信开发,将微信官网源码(java版)导入,用tomcat发布时报错,求解答? 2016-3-17 14:19:13 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.li

《iOS开发指南》第二版 iOS7版-源码-样章-目录,感谢大家一直以来的支持

<iOS开发指南-从0基础到AppStore上线>第二版 iOS7版正式出版了 感谢大家一直以来的支持! 改版后采用全新的ios 7 api,详细介绍了最新的ios 7 开发相关的知识点,全部案例以iOS7版本SDK重新编译. 新增:iOS 7中文字排版和渲染引擎--Text Kit:      iOS6升级到iOS7遇到的问题与解决方法:      着重讲解iOS分层架构设计: 更新无处不在,更多新增内容请详细阅读本书 京东销售地址:http://item.jd.com/11419483.h

哪位大虾有社区类网站的源码共享下呗

问题描述 本人Java幼儿园需要参考谢谢诸位大虾 解决方案 解决方案二:源码你可以在网上搜下,代码太长了!解决方案三:www点open-open点com这个网站不错,有时间可以去看一下

《GDAL源码剖析与开发指南》一一1.3 GDAL支持的数据格式

1.3 GDAL支持的数据格式 GDAL源码剖析与开发指南 GDAL支持的数据格式分为两种:栅格数据格式和矢量数据格式.GDAL在每次版本更新的时候,都会加入对新的格式的支持.本书使用GDAL1.10版本中支持的栅格数据格式,如表1-1所示,支持的矢量数据格式如表1-2所示. 注意 文件的最大存储大小不仅由文件的格式决定,而且和操作系统有关系.

springboot源码分析14-ApplicationContextInitializer原理Springboot中PropertySource注解多环境支持以及原理

摘要:Springboot中PropertySource注解的使用一文中,详细讲解了PropertySource注解的使用,通过PropertySource注解去加载指定的资源文件.然后将加载的属性注入到指定的配置类,@value以及@ConfigurationProperties的使用.但是也遗留一个问题,PropertySource注解貌似是不支持多种环境的动态切换?这个问题该如何解决呢?我们需要从源码中看看他到底是否支持. 首先,我们开始回顾一下上节课说的PropertySource注解的

************打版本工具源码共享**********

问题描述 因为每次打扮版本比较麻烦......所以小小的写了个打版本工具...当然主要是针对增量版本,就是比如我提交了一个Java类到SVN上,然后测试人员更新下这个java类后编译然后找出来放到对应的测试服务器上,这样会很麻烦...虽然也有hudson这些集成化部署软件但是似乎提交一个Java类也会打全版本..所以我弄了一个,可以自动化编译然后将最新提交的代码的class复制出来,测试人员只要覆盖过去即可..这个是我上传的链接,有源码和打包好的EXE文件..编译基于的是Ant,所以需要装一下.

通用分页存储过程,源码共享,大家共同完善_MsSql

好久没有上来写点东西了,今天正好有空,共享一些个人心得,就是关于分页的存储过程,这个问题应该是老生重谈了,网上的通用存储过程的类型已经够多了,但是,好象看到的基本上不能够满足一些复杂的SQL语句的分页(也可能是我不够见多识广啊,呵呵),比如下面这句:  select '' as CheckBox, A.TargetID, A.TargetPeriod, Convert(varchar(10), B.BeginDate, 120) as BeginDate,      Convert(varcha

通用分页存储过程,源码共享,大家共同完善

好久没有上来写点东西了,今天正好有空,共享一些个人心得,就是关于分页的存储过程,这个问题应该是老生重谈了,网上的通用存储过程的类型已经够多了,但是,好象看到的基本上不能够满足一些复杂的SQL语句的分页(也可能是我不够见多识广啊,呵呵),比如下面这句:  select '' as CheckBox, A.TargetID, A.TargetPeriod, Convert(varchar(10), B.BeginDate, 120) as BeginDate,      Convert(varcha