求图像交替显示与可拖动平滑显示的解决方案,贡献程序者可另行给高分

lsh1088 2004-11-22 10:43:10
我的工程里面,希望对两幅或以上的图像交替显示,比如这一秒是图1,下一秒是图2,这样观察两幅图像的差异以做判断,两幅图之间当然差别也不大,甚至是只希望对特定区域实现闪烁,即设置屏蔽或是透明显示;同时想有可用鼠标控制图像显示区域,类似acdsee手形鼠标的功用实现,当然不希望闪烁,望各位大虾鼎力相助,有程序可供参考者必重分酬之。
email:launch2001@163.com
...全文
84 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsh1088 2004-11-24
  • 打赏
  • 举报
回复
没人气,自己顶
asett1 2004-11-22
  • 打赏
  • 举报
回复
1. 设定alpha值,每个image 50%
2. 隐藏slider实现拖动图像
3. 双缓存实现无闪烁
lsh1088 2004-11-22
  • 打赏
  • 举报
回复
我在论坛上引用的别人帖子内容,我现在已经实现鼠标拖动图像的功能,但不是按下文步骤来的。
我也发现自己做的可能多余,因为我的图像显示是带滚动条的,用滚动条可以实现图像移动显示功能,
现在我考虑的是怎么让滚动视窗获取我鼠标移动信息,并滚动显示图像,有谁能答?

 图像平移

  图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0+dx, y0+dy),右下角坐标为(x1+dx, y1+dy)。坐标平移变换公式为:

  x1 = x + dx

  y1 = y + dy

  在屏幕上实现图像的移动分为四个步骤:

  ⑴ 读原图像到缓冲区;

  ⑵ 擦除视图上原图像;

  ⑶ 计算平移后的新坐标。

  ⑷ 利用API函数::StretchDIBits()在新的左上角坐标位置处重新显示原图像。

  其中,擦除原图像的方法与图形变换中擦除原图形的方法一致,在实现中仍采用XOR异或方式画图擦除原图像。对于新坐标值的计算还需要考虑边界情况,不要在图像平移后超出允许的屏幕范围。
lsh1088 2004-11-22
  • 打赏
  • 举报
回复
我只是显示图像而已,不用视频的,不用什么DirectShow这么麻烦吧。
syy64 2004-11-22
  • 打赏
  • 举报
回复
用directShow.

19,468

社区成员

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

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