CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

位图灰度处理

楼主zodane(铁血小王子)2005-11-18 13:04:33 在 VB / API 提问

比如让一指定图片框里的位图   ,点击按钮   ,该位图进行灰度处理. 问题点数:30、回复次数:6Top

1 楼lxcy(始经天月照,终若流星驰!)回复于 2005-11-18 15:47:24 得分 10

看看下面的代码(速度比较慢)  
   
  Option   Explicit  
   
  Private   Declare   Function   GetPixel   Lib   "gdi32"   _  
            (ByVal   hdc   As   Long,   ByVal   x   As   Long,   ByVal   Y   As   Long)   As   Long  
  Private   Declare   Function   SetPixelV   Lib   "gdi32"   _  
            (ByVal   hdc   As   Long,   ByVal   x   As   Long,   _  
              ByVal   Y   As   Long,   ByVal   crColor   As   Long)   As   Long  
  Private   tmpPic   As   Picture  
   
  Private   Sub   Form_Load()  
          Picture1.ScaleMode   =   3  
          Picture1.AutoRedraw   =   True  
          Set   tmpPic   =   Picture1.Picture  
  End   Sub  
   
  Private   Sub   Command1_click()  
          Dim   width5     As   Long,   heigh5   As   Long,   rgb5   As   Long  
          Dim   hdc5   As   Long,   i   As   Long,   j   As   Long  
          Dim   bBlue   As   Long,   bRed   As   Long,   bGreen   As   Long  
          Dim   Y   As   Long  
           
          width5   =   Picture1.ScaleWidth  
          heigh5   =   Picture1.ScaleHeight  
          hdc5   =   Picture1.hdc  
          For   i   =   1   To   width5  
                  For   j   =   1   To   heigh5  
                          rgb5   =   GetPixel(hdc5,   i,   j)  
                          bBlue   =   Blue(rgb5)             '获得兰色值  
                          bRed   =   Red(rgb5)                 '获得红色值  
                          bGreen   =   Green(rgb5)         '获得绿色值  
                          '将三原色转换为灰度  
                          Y   =   (9798   *   bRed   +   19235   *   bGreen   +   3735   *   bBlue)   \   32768  
                          '将灰度转换为RGB  
                          rgb5   =   RGB(Y,   Y,   Y)  
                          SetPixelV   hdc5,   i,   j,   rgb5  
                  Next   j  
          Next   i  
          Set   Picture1.Picture   =   Picture1.Image  
  End   Sub  
   
  Private   Function   Red(ByVal   mlColor   As   Long)   As   Long  
          '从RGB值中获得红色值  
          Red   =   mlColor   And   &HFF  
  End   Function  
  Private   Function   Green(ByVal   mlColor   As   Long)   As   Long  
          '从RGB值中获得绿色值  
          Green   =   (mlColor   \   &H100)   And   &HFF  
  End   Function  
  Private   Function   Blue(ByVal   mlColor   As   Long)   As   Long  
          ''从RGB值中获得蓝色值  
          Blue   =   (mlColor   \   &H10000)   And   &HFF  
  End   Function  
  Top

2 楼rainstormmaster(暴风雨 v2.0)回复于 2005-11-18 20:13:56 得分 0

http://61.186.252.131/Expert/TopicView3.asp?id=1538596Top

3 楼cuizm(射天狼 http://www.j2soft.cn/)回复于 2005-11-18 22:20:34 得分 5

我的网站上有一个VB写的图像处理程序,速度很快。  
   
  http://www.j2soft.cn/  
   
  VB资料->查询“Vb图像处理的程序”;  
   
  =================  
  学习技巧与源码下载站:  
  http://www.j2soft.cn/  
  http://j2soft.008.net/Top

4 楼homezj(小吉)回复于 2005-11-19 10:33:45 得分 15

我以前写的一个代码  
  http://dev.csdn.net/develop/article/68/68330.shtmTop

5 楼zodane(铁血小王子)回复于 2005-11-19 18:44:13 得分 0

谢谢大家的帮助   。我都看了一下,   代码都很长   ,功能也很强大。看得出大家都是真正的牛人,  
          不过我的水平还不到家啊   ,难以将如此复杂的代码学以致用,  
          我的目的其实也并不多复杂   .  
          就是写一个游戏程序,   模拟游戏里的死亡事件   ,当死亡事件发生时显示的窗体,  
  首先是图片框从资源文件里读取指定的角色人物图片   .然后在窗体load事件里对它进行处理.  
  自然   这个过程是越快越好   ,最好让玩家看不到人物图像从原状到灰度的过程.    
          再次感谢大家,   我会继续努力学习.Top

6 楼zodane(铁血小王子)回复于 2005-11-19 21:10:56 得分 0

问题搞定了,     做得很干净。  
  我是用的四楼的方法。   现已把它封装成模块   ,以后可以直接调用了。Top

相关问题

  • StretchBlt能处理8位的灰度图片么?
  • 怎样做图像的灰度处理
  • 关于php处理图片灰度
  • 用灰度绘制位图
  • [Help]如何将读入内存中的位图,灰度化处理?[高分求教]
  • 将各种图片进行灰度处理该怎么做
  • 急,急!各位师兄请帮忙:哪位有图像预处理的源代码(可以处理256色灰度图和24位的)?先谢谢了。
  • 如何显示12位灰度等级的图象,灰度图,跪求解决方案~·!!!!! 50分求助
  • 如何将24位的位图。。转换成 灰度图。。
  • 如何判断灰度位图和彩色位图

关键词

  • .net
  • 代码
  • soft
  • 灰度
  • picture1
  • heigh
  • hdc
  • rgb
  • byval
  • as long

得分解答快速导航

  • 帖主:zodane
  • lxcy
  • cuizm
  • homezj

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo