中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
快速对图片进行滤光处理
作者:未知 时间:2005-07-27 21:44 出处:CSDN 责编:chinaitpower
              摘要:快速对图片进行滤光处理

想快速地对指定图片或区域进行滤光处理,常见的方法取出图片数据,逐像素与指定滤光色进行AND运算,很麻烦。还见过网上流传的有用Point或GetPixel取点运算的,其低速可想而知。

其实利用BitBlt的位运算,可高速完成这种操作,下面这个函数比数组运算方法可快10倍,比Point或GetPixel估计会快上千倍。

Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32.dll" (ByVal crColor As Long) As Long
Private Declare Function FillRect Lib "user32.dll" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
Private 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


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有