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图像旋转问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!