求助:如何定位一个大分辨率BMP文件中某一个像素点的绝对位置?

时间:2023-02-14 14:27:58
我做了一个处理BMP文件的多文档VC程序,根据BMP图像显示后的屏幕坐标确定该点在BMP文件中的位置,找该点的RGB数值,作算法。这些都已实现了。
问题是在开分辨率大的BMP文件时,程序框显示不下,侧面出现滑动条,滑动滑条后,BMP文件中自己想要的那个点的屏幕坐标就变了,做的算法就出问题了。如何定位这个大分辨率BMP文件中某一个像素点的绝对位置?谢谢各位!

9 个解决方案

#1


就是自己计算,没别的办法

#2


算法有问题,你滚动条也加到算法就可以拉

#3


你用滚动条滚动的时候,肯定要加偏移量,那么计算坐标的时候加上这个偏移量就可以了。

#4


你把坐标先转换好不就行了。

#5


你知道屏幕坐标,可以直接取这一点的RGB值,为什么还要到文件中去读呢.

#6


同意楼上
回复内容太短了!

#7


1)24位位图中,煤个象素在文件中有固定的位置存储其RGB值。(参考BMP文件结构)
2)必须用GETPIXEL()的话,使用偏移量来定位就可以。

#8


CPoint ScrollPoint;
ScrollPoint=GetScrollPosition();
pdc->BitBlt(0-ScrollPoint.x,0-ScrollPoint.y,m_lWidth,m_lHeight,m_pMemDC,0,0,SRCCOPY);

#9


用DX技术似乎可以满足,前两天看了他的一个sample .

#1


就是自己计算,没别的办法

#2


算法有问题,你滚动条也加到算法就可以拉

#3


你用滚动条滚动的时候,肯定要加偏移量,那么计算坐标的时候加上这个偏移量就可以了。

#4


你把坐标先转换好不就行了。

#5


你知道屏幕坐标,可以直接取这一点的RGB值,为什么还要到文件中去读呢.

#6


同意楼上
回复内容太短了!

#7


1)24位位图中,煤个象素在文件中有固定的位置存储其RGB值。(参考BMP文件结构)
2)必须用GETPIXEL()的话,使用偏移量来定位就可以。

#8


CPoint ScrollPoint;
ScrollPoint=GetScrollPosition();
pdc->BitBlt(0-ScrollPoint.x,0-ScrollPoint.y,m_lWidth,m_lHeight,m_pMemDC,0,0,SRCCOPY);

#9


用DX技术似乎可以满足,前两天看了他的一个sample .