快速对图片进行滤光处理

2016-01-29 13:04 31 1 收藏

快速对图片进行滤光处理,快速对图片进行滤光处理

【 tulaoshi.com - ASP.NET 】


想快速地对指定图片或区域进行滤光处理,常见的方法取出图片数据,逐像素与指定滤光色进行AND运算,很麻烦。还见过网上流传的有用Point或GetPixel取点运算的,其低速可想而知。
其实利用BitBlt的位运算,可高速完成这种操作,下面这个函数比数组运算方法可快10倍,比Point或GetPixel估计会快上千倍。
Private Type RECT Left As Long Top As Long Right As Long Bottom As LongEnd TypePrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate Declare Function CreateSolidBrush Lib "gdi32.dll" (ByVal crColor As Long) As LongPrivate Declare Function FillRect Lib "user32.dll" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As LongPrivate Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Public Sub FilterRGB(dHdc As Long, X As Long, y As Long, w As Long, h As Long, Optional tc As Long = &HFFFF00) Dim tmphdc As MemHdc, rc As RECT, hBrush As Long tmphdc = NewMyHdc(dHdc, w, h) '建立一个内存位图 rc.Right = w rc.Bottom = h hBrush = CreateSolidBrush(tc) FillRect tmphdc.hdc, rc, hBrush '用滤光色填充图片,产生一个纯色图片 DeleteObject hBrush BitBlt dHdc, X, y, w, h, tmphdc.hdc, 0, 0, vbSrcAnd '绘入目标,并与目标进行And运算,达到滤光效果 tmphdc = DelMyHdc(tmphdc)End Sub

本篇中的公用函数NewMyHdc、DelMyHdc及相关结构与API声明,可在以下文章中找到http://blog.csdn.net/homezj/archive/2005/04/14/348001.aspx

来源:http://www.tulaoshi.com/n/20160129/1488748.html

延伸阅读
标签: Web开发
对于网页制作者来说,最烦琐的事情可能就是给页面中的图片或文字加链接了。假如页面内容很多的话,那么所做的工作只能用恐怖来形容。记得几天前,笔者就曾在很短的时间内为一个客户做了300个图片和相应的链接。正好是Dreamweaver和Fireworks结合的一个很好的实例典范,下面我们就来学习一下自动制作许多链接并处理图片的方法。 首先...
PS对特写照片进行后期处理教程 本篇PS照片处理教程将向我们介绍对特写人像照片进行后期处理的方法,教程介绍的方法比较适合商业修图的要求,也算是很实用,方法步骤介绍的也比较惊喜,希望朋友们喜欢! 这是调制完成的效果: 教程 原片: 下面我们开始具体的学习调制方法: 01-复制图层,对人物明显的疤痕进行修...
标签: word
Word如何对文档中图片进行压缩处理   步骤一:Word中图片工具栏上的压缩图片按钮和压缩图片对话框。 步骤二:来到这里,我们一起来看看压缩后的图片与原图的大小对比一下,果然给它瘦身了不少喔! 步骤三:操作很基本,但这一步很重要,所以这里给各位朋友普及啦。 如何在Word中将图片的背景抠走   第一...
来源:教程网 作者:Hf_2048 夜景图片美化的重点是灯光及背景部分。这些可以根据实际图片来做相应的调整。如下面的教程,作者加强了图片中灯光的亮度,背景部分渲染了一些蓝色,画面看上去亮丽很多。 原图 最终效果 1、打开原图素材,创建色阶调整图层,把图片调亮。 2、再用添加一个“色阶”调整图层,稍微调暗点,...
标签: PS PS基础
摄影人,常常喜欢光线效果特别,于是逆光摄影、侧光摄影非常多,使得画面场景中明暗差异非常大,相机拍不出来好效果,只好仰赖后期处理。 用我自己的图,来说明反差很大的场合,照片如何后期处理。每个人的审美不同,对待事物的看法或有不同,反差大的现场,相机拍出来的效果,不符合我眼睛现场看到的效果,所以,我要做PS,希望把照片做到我...

经验教程

243

收藏

62
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部