MFC如何获取图片像素点的坐标?

qq_37835550 2019-05-14 02:18:51
MFC如何获取图片像素点(黑色点)的坐标?
int k = 0;
for (int j = 0; j < height - 1; j++)
{
for (int i = 0; i < wide - 1; i++)
{
//// 指向目标图像倒数第j行,第i个象素的指针
lpDst = (LPBYTE)temp + wide * j + i;
pixel = (unsigned char)*lpDst;
if (pixel == 0)
{
JL[k][0] = wide-i;
JL[k][1] = height-j;
k++;
}
}
}
为什么得到的点的坐标用pDC->SetPixel(JL[i][0]+ CDibNew1->GetWidth(), JL[i][1], (COLORREF)0x00FF0000);画出来后和实际的图不对应?
...全文
413 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37835550 2019-05-17
  • 打赏
  • 举报
回复
不是倒的,用获取的坐标在客户区画点时,与原图相比,被拉长了。
问题我已经解决了,谢谢大家!
int K=0;
int Aggregate[1400][2];
for (UINT y = 0; y <bitmapHeight-1; y++)
{
for (UINT x = 0; x < bitmapWidth-1; x++) {
COLORREF rgb = pDC->GetPixel(x, y);
if ((GetRValue(rgb) == 0) && (GetGValue(rgb) == 0) && (GetBValue(rgb) == 0))
{
pDC->SetPixel(x + bitmapWidth, y, (COLORREF)0x00FF0000);
Aggregate[K][0] = x;
Aggregate[K][1] = y + bitmapHeight;
K++;
}
}
}

我在OnDraw里用了GetPixel,判断是否是我需要的像素点,如果是,就把x,y坐标保存到Aggregate中。
schlafenhamster 2019-05-15
  • 打赏
  • 举报
回复
pixel = (unsigned char)*lpDst;// 8 bit 位图 ?
伊航 2019-05-15
  • 打赏
  • 举报
回复
k是个什么鬼?你好像忘了。
threenewbee 2019-05-14
  • 打赏
  • 举报
回复
屏幕坐标系是y从上往下,数学上的坐标系y是从下往上
schlafenhamster 2019-05-14
  • 打赏
  • 举报
回复
不对应 ? 倒的 ?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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