如何bmp图像翻转

dabou 2001-07-09 12:02:36
我想把bmp图像翻转如何实现呢?
我写的CDib
其中,一个涵数是为了把bmp位图数据上下反存但
24位色的图像才能正确显示.如何解决呢?
void CDib::BmpFilp()
{

int depth=m_pBitmapInfo->bmiHeader.biBitCount/8;

int nWidth=GetWidth();
int nHeight=GetHeight();
hMemHandle=GlobalAlloc(GMEM_FIXED|GMEM_ZEROINIT,depth*GetSize());
BYTE *Bitmap2=(BYTE *)GlobalLock(hMemHandle);
BYTE *Bitmap1 = GetData();

int d=0,nCount=0,pos1=0,pos2=0,i=0;
int nStep=nWidth*depth;
int nStart=nHeight*nWidth*depth;

for(;nHeight>=1;nHeight--)
{
nStart-=nStep;
pos1=nStart; //POS1=(nHeight-1)*nWidth*depth;


memcpy(Bitmap2+pos2,Bitmap1+pos1,nStep);
pos2+=nStep;
}
m_Bitmap2=Bitmap2;
GlobalUnlock(hMemHandle);


}
...全文
539 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
VegetableBird 2001-07-09
  • 打赏
  • 举报
回复
就是说你的源位图在内存中应该以DIB的形式存在啊,(在装载你的位图资源时,不用LoadBitmap,而用LoadImage)。
csdn的程序员大本营99里面有一个CDIB类下载的,封装了很多很漂亮的方法。你可以试一试。
yz95 2001-07-09
  • 打赏
  • 举报
回复
你会给分吗??
dabou 2001-07-09
  • 打赏
  • 举报
回复
谢谢如何给你们分数呢
wslee 2001-07-09
  • 打赏
  • 举报
回复
请把问题说清楚
ahphone 2001-07-09
  • 打赏
  • 举报
回复
http://www.csdn.net/dev/visual%20c++/source%20code/Bitmap/invert_bitmap.shtml.htm

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧