当前位置: 首页 > web >正文 使用CImage类 web 2025/7/5 6:46:21 // 头文件 //#include "atlimage.h" //CImage *image = new CImage(); if( image ) { delete image; image = NULL; } image = new CImage(); // 载入图像 image->Load( "c://test.bmp" ); if( image ) { int width = image->GetWidth(); int height = image->GetHeight(); int stride = abs(image->GetPitch()); byte* pDst = new byte[stride*height]; byte* pRealData = NULL; pRealData = (byte*)image->GetBits(); int pit = image->GetPitch(); int bitCount = image->GetBPP()/8; memset( pDst, 0, abs(pit)*height ); for (int y=0; y<height; y++) { for (int x=0; x<width; x++) { int grayVal = (int)(int)(*(pRealData + pit*y + x*bitCount))*0.3 + (int)(int)(*(pRealData + pit*y + x*bitCount +1))*0.59 + (int)(int)(*(pRealData + pit*y + x*bitCount +2))*0.11; // 彩色图转灰度图 //*(pRealData + pit*y + x*bitCount) = grayVal; //*(pRealData + pit*y + x*bitCount +1) = grayVal; //*(pRealData + pit*y + x*bitCount +2) = grayVal; } } //memcpy( pRealData + pit*(height-1) , pDst, abs(pit)*height ); // 保存图像 image->Save( "c://test2.bmp"); //image->ReleaseGDIPlus(); //image->ReleaseGDIPlus(); //image->Destroy(); //delete image; delete[] pDst; 使用CImage类存取图像真方便。 查看全文 http://www.xdnf.cn/news/11203.html 相关文章: Linux系统 虚拟机安装教程_虚拟机安装linux系统 镜头选型——景深计算 86年版五笔和98年版五笔区别 C语言从入门到精通保姆级教程(2021版上) Response.AddHeader使用实例 functionexists php,PHP 检测函数是否被定义 function_exists 函数 [转载] Rss 与 Feed 的概念区别 正则表达式匹配“不包含某些字符串”的技巧 SAPCRM销售订单集成创建 C#中Socket的简单使用 注册系统热键 RegisterHotKey() Android中ProgressDialog的使用 BP神经网络算法基本原理,bp神经网络算法详解 m3u8直播测试地址 面向对象设计的八大基本原则 VMware虚拟机Windows 10安装使用教程(非常详细)从零基础入门到精通,看完这一篇就够了_vmware安装windows10 BUMO 区块链开发文档 Dogfooding-爱奇艺移动端后台灰度环境优化实践 Union和Union All的使用 jQuery.serializeArray() 函数详解 C/C++编程:log4cpp使用学习 wait,notify/notifyAll的使用及实现原理 ObjectDock Java 10正式发布,带来了这些新特性 Coqui:创建逼真的生成式人工智能语音 在网络安全领域,比较牛的中国黑客有哪些? git clone 遇到问题:fatal: unable to access ‘https://github.comxxxxxxxxxxx‘: Failed to connect to xxxxxxx iOS开发进阶(一):iOS原生开发环境搭建步骤详解_ios编译环境搭建 关于connectionstring字符串的那点事 Python OpenCV 3.x 示例:6~11
// 头文件 //#include "atlimage.h" //CImage *image = new CImage(); if( image ) { delete image; image = NULL; } image = new CImage(); // 载入图像 image->Load( "c://test.bmp" ); if( image ) { int width = image->GetWidth(); int height = image->GetHeight(); int stride = abs(image->GetPitch()); byte* pDst = new byte[stride*height]; byte* pRealData = NULL; pRealData = (byte*)image->GetBits(); int pit = image->GetPitch(); int bitCount = image->GetBPP()/8; memset( pDst, 0, abs(pit)*height ); for (int y=0; y<height; y++) { for (int x=0; x<width; x++) { int grayVal = (int)(int)(*(pRealData + pit*y + x*bitCount))*0.3 + (int)(int)(*(pRealData + pit*y + x*bitCount +1))*0.59 + (int)(int)(*(pRealData + pit*y + x*bitCount +2))*0.11; // 彩色图转灰度图 //*(pRealData + pit*y + x*bitCount) = grayVal; //*(pRealData + pit*y + x*bitCount +1) = grayVal; //*(pRealData + pit*y + x*bitCount +2) = grayVal; } } //memcpy( pRealData + pit*(height-1) , pDst, abs(pit)*height ); // 保存图像 image->Save( "c://test2.bmp"); //image->ReleaseGDIPlus(); //image->ReleaseGDIPlus(); //image->Destroy(); //delete image; delete[] pDst; 使用CImage类存取图像真方便。