bmp图像 getPixel的问题
已经建立了一个CDIB类,构造函数和显示图像都没问题,但是操作像素时,抱错,内存不能为读
没有头绪,在这求助大家帮忙,谢谢
下面是DibAddress和getPixel的代码
没有头绪,在这求助大家帮忙,谢谢
下面是DibAddress和getPixel的代码
BYTE * CDIB::DibAddress(int x,int y) //取像素数据存储地址
{
BYTE * lp;
int le;
int yy;
if(bitCount<8) //检查像素为数,只处理8位以上
{AfxMessageBox("本程序只处理 8 位以上的图像"); return 0;}
if((x<0) || (y<0) || (x>=(int)wid) || (y>=(int)hei)) //检查参数是否超出范围
{AfxMessageBox("参数超出范围");return 0;}
le=(int)bpl * yy + bpp * x; //计算偏移的位置
lp=(BYTE *) lpPixel + le; //加上像素区域首地址
AfxMessageBox("2222");
return lp;
}
DWORD CDIB::pixel(int x,int y,DWORD c) //前提条件:x,y是像素列和行,c为0xffffffff时取,否则存
//执行结果:存入像素或取出像素
{
BYTE * lp;
DWORD dd=0;
lp = DibAddress (x,y);
if(lp =NULL) return 0;
if(c == 0xffffffff)
{
AfxMessageBox("3333");
memcpy(&dd,lp,bpp); //取像素数据 这里内存不能为读
}
else
{
AfxMessageBox("4444");
memcpy(lp,&c,bpp); //存像素数据内存不能为写[color=#FF0000][/color
}
return dd;
}
...全文
相关推荐
24位BMP转32位BMP
24位BMP转32位BMP的c#代码测试可用,适用于linux开发板的LCD需要32位深度的BMP的场合,代码参看了网友彭军的代码,我将它实现了并上传....柏林
VC++图像边缘检测实战:Canny算法实现与性能优化
在工业视觉与图像处理领域,边缘检测是提取目标轮廓、实现尺寸测量与特征分析的核心步骤。Canny算法凭借其完善的去噪、梯度计算、非极大值抑制与双阈值连接流程,成为工程应用中最常用的边缘检测方案。然而在实际部署中,Python与OpenCV在运行时依赖、内存控制和执行效率上存在局限,原生C++实现的算法模块更契合Windows工控机与嵌入式工具链的需求。本文从BMP像素读取、Sobel梯度计算到非极大值抑制与滞后阈值连接,完整解析Canny算法的纯C++实现链路,并通过多线程分块、缓存友好设计及Otsu自适应阈
VB浮雕效果(BMP图像)
内容索引:VB源码,图形处理,浮雕 VB编程实现将一幅BMP图片处理成类似Photoshop一样的浮雕效果,处理的效果很好,就是处理时候有点慢。
易语言远控桌面算法BMP分割源码
资源介绍:。源码实现了BMP图像分割,BMP像素点阵截图。资源作者:。@易语言入门源码。资源界面:。资源下载:。
图像灰度值
详细的叙述了图像灰度值的计算,让我们更清楚的了解图像灰度值


图形处理/算法
