我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 网络技术 | 程序设计 | 系统操作 | 本站动态 | 业界动态 | 安全公告 | 病毒公告 | 八卦黑客
 
 
您当前的位置:我爱黑客 -> 程序设计 -> C++ -> C++图象 -> 文章内容  
栏目导航
· C++综合 · C++通信
· C++视图 · C++图象
· C++系统 · C++多媒体
· C++界面 · C++文件
· C++数据库 · C++网络
热门文章
· 用C++ Builder对图像进..
· 在CB中进行DirectX编程..
· 在CB中进行DirectX编程..
· 在CB中进行DirectX编程..
· 在CB中进行DirectX编程..
· 使用双缓冲技术绘制曲..
· 用CB实现图像的特技显..
· Win 95/NT下OpenGL编程..
· 实现窗体的渐变背景
· 在C++Builder中实现快..
· 属性表标签上的位图在..
· 在C++ Builder中进行D..
相关文章

· 用C++ Builder开发W..
· 利用C++ Builder实现..
· 如何利用CB5.0 创建..
· 用C++Builder开发IS..
· 用C++BUILDER实现PO..
· 用C++产生QL*Loader..
· 如何利用C++ Builde..
· 在C++Builder中使用..
· [图文] 利用C++ Buil..
· [图文] 利用C++ Buil..
查看更多与用C++ Builder对图像进行特殊效果处理相关内容

用C++ Builder对图像进行特殊效果处理
作者:幽火  来源:www.5ihack.com  发布时间:2007-1-8 17:23:50  发布人:ghostfire

减小字体 增大字体

  在Windows编程中图像处理相对比较复杂,好在C++ Builder提供了一些图形类,它们通过对Windows中的图形对象进行包装,从而大大简化了图像操作的难度。下面就通过对图像进行柔化、锐化、浮雕效果等几个特殊效果处理来具体说明一下。

  一、准备工作 位图图形实际上是像素的二维数组,它记录了每个像素的颜色信息,而TCanvas类提供了Pixels属性,用它可以存取指定像素的颜色值,通过这个属性将位图图形的部分或全部像素的颜色值进行相应的变换处理,就可以实现图像的特殊效果处理。在Windows中颜色是根据红、绿、蓝三种颜色的饱和度来定义的,在这里我们要将像素颜色值的红、绿、蓝分量从像素值中分离出来,分别加以保存,所以需要定义一个结构来存放颜色分量:

  struct rgb_str
{
unsigned char r_color;
unsigned char g_color;
unsigned char b_color;
};
rgb_str rgb[2000][2000];
建立全局变量:Graphics::TBitmap *bitmap;
//用来存放变换后的位图
int i,j,width,height;

  在窗体上放置一个TImage组件和OpenPictureDialog组件,将TImage的AutoSize属性设为true,将OpenPictureDialog的Filter设为*.bmp。当用户选择Open命令后,打开相应的对话框,让用户选择要处理的图像文件,然后程序将图像的所有像素的颜色分量保存到rgb数组中:

  void __fastcall TForm1::mnuFileOpenClick(TObject *Sender)
{
TColor color;
if(OpenPictureDialog1- >Execute())
  {
  Image1- >Picture->LoadFromFile(OpenPictureDialog1- >FileName);
  width=Image1- >Picture- >Width; height=Image1->Picture->Height;
  for(i=0;i< width-1;i++)
   for(j=0;j< height-1;j++)
    {
    color=Image1- >Canvas->Pixels[i][j];
    rgb[i][j].r_color=GetRValue(color);
    rgb[i][j].g_color=GetGValue(color);
    rgb[i][j].b_color=GetBValue(color);
    }
  bitmap=new Graphics::TBitmap;
  bitmap->Width=width;
  bitmap->Height=height;
  }
}

  二、图像的柔化处理

  柔化就是对图像进行平滑处理,减少相邻像素间的颜色差别,一般选用3*3像素块,将中间的像素值改成这9个像素的平均像素值,从而达到柔化效果。其代码如下:

查看更多与用C++ Builder对图像进行特殊效果处理相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      在CB中进行DirectX编程(3)       QuickReport基本知识
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图