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

酒精的化学式2023-05-01  27

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

转载请注明原文地址:https://juke.outofmemory.cn/read/3755105.html

最新回复(0)