CImage怎样获取一行像素的大小 我使用GetPitch时得到的是一个与实际不相符的负数

CImage怎样获取一行像素的大小 我使用GetPitch时得到的是一个与实际不相符的负数,第1张

GetPitch()返回一个负值,说明图像是图像的顺序是从下到上的,也就是图像是从左下角开始。

如果你24位图像宽度是600,返值应该是正负1800;

如果你24位图像宽度是598,返值同样是正负1800;(地址取齐)

当然用第一个啊,CImgae 可以使用任何的格式的jpg,png之类的,提供了很多方法;

如果怕麻烦就用CBitmap 那个累来操作,bmp的类;

最后一个最麻烦,完全封装了操作,直接对位图的操作(bmp)

CImage 应该是最方便的类了,我经常用

哪有那么复杂,只要用CImage的PlgBlt方法就可以解决90度,180度和反转的问题。

例:

CImage m_pCurrentFrame;

CPoint m_DisplayPoints[3]; // 放着旋转后的四边形的3个顶点 如果逆时针旋转90度

// m_DisplayPoints[0] 右上角,m_DisplayPoints[1] 左上角

// m_DisplayPoints[3] 右下角

int width,height; // 源图的宽和高

m_pCurrentFrame->PlgBlt(dc,m_DisplayPoints,0,0,width,height); // m_pCurrentFrame 转90度

以上就是关于CImage怎样获取一行像素的大小 我使用GetPitch时得到的是一个与实际不相符的负数全部的内容,包括:CImage怎样获取一行像素的大小 我使用GetPitch时得到的是一个与实际不相符的负数、CImage,CBitMap和CDib设备无关位图,到底用哪个好、CImage图像旋转问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:聚客百科

原文地址: http://juke.outofmemory.cn/life/3755105.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存